Ajax isteği yapıp php de like yaptırıp o anki tablo verilrini bir değerde tutup (arama kısmı boş olduğunda eski verilerin gözükmesi için bence) ajaxdan gelen değeri direk tablonun tbody sine ekletme ile yapılır birden fazla tablo ve kategorin varsa searchına bir data-x tarzı verip ayıra bilirsin diye düşünüyorum
daha farklı mantıklarda vardır tabi ama ben 2 farklı yol düşündüm
öncelikle javascript kodlarımız bu şekilde olsun
setInterval(function(){
$.get('ajax.php?type=keep_alive');
},60000 * 2); // 2 dakika
içerikte sadece o anki session,cookie tabloda last_activity_time ı güncellicek
update user set last_activity_time = now() where id = x
-1. yol kullanıcıları listediğin yerde o kullanıcı garanti olsun diye 5 dakikadan büyükse offlinedır
-2. ajaxda tablodaki status durumunu güncelledikten sonra bir cron yazıp 5 dakikadan büyük olanları 0 a çekebilirsin
ajax istekleri sürekli sürekli sekme değiştirmeyen bir insan için bilgisayarda performans kaybına neden olabilir
yine de en sağlıklı nodejs socket kullanman olur
ben şu yapıyı kullanıyorum.
id | w_type(api,web) | l_type(query,login,register...) | ip | content |
---|---|---|---|---|
1 | api | query | 1.1.1.1 | select * from .. |
2 | web | login | 1.1.1.1 | xx (person,admin), logged in |
3 | web | referer | 1.1.1.1 | referer is block wwww.com |
4 | api | key | 1.1.1.1 | bad api key used in |
ihtiyacına göre hem kategori hem de tipleme yapabilirsin
Daha önce bende karşılaştığım problemlerden bunu şu şekilde çözmüştüm db de tablo sutun ayarlarından kaynaklanıyor. sql_mode ayarlanması gerekiyor hostingler izin veriyor mu bilmiyorum ancak tabloda allow null (boş olamaz) değeri aktif ise ve insert ederken o değeri göndermeyince böyle bir problem cıkıyor
Cevabınız için teşekkür ederim fakat benim'de buna benzer cok daha fazlasını kontrol ettiğim bir sistem var fakat benim problemim tam olarak bu değil
Eklemeyi unutmuşum site genel olarak global hocam yüksek trafikler geliyor günlük tekile vurduğumuzda 500k-700k arası değişiyor ülke bazlı değilde asn numarası olark sorguluyorum.
script'te ek olarak loglama yapıyorum onuda satır satır kontrol ettim sql injection olduğunu düşünmüyorum tüm php dosyalarını tek tek inceledim
kolay gelsin :)
in statement ile yapabilirsin.
<?php
$arr = [1,2,3];
$in = str_repeat('?,', count($arr) - 1) . '?';
$st = $db->prepare("SELECT * FROM table WHERE urun_id IN (" . $in . ")");
$st->execute($arr);
$data = $st->fetchAll();
responsive de bildirimlerde hamburger menu calısmıyor tıklanınca menu acılmıyor
html cıktısını ve js cıktısını atarsanız daha rahat yardım edebiliriz fakat mantık gereği her mesaj attıktan sonra üst mesajlardaki resimleri kaldırıp son resimlere ekletmek gerekiyor
$(".user_img").remove();
$(".user_info:last").html('<img class="user_img"> ...');