lostyazilim
tr.link

Yeni veri çekme kontrolü

9 Mesajlar 1.115 Okunma
lstbozum
tr.link

loss07 loss07 WM Aracı Kullanıcı
  • Üyelik 25.03.2019
  • Yaş/Cinsiyet 28 / E
  • Meslek I-T
  • Konum Antalya
  • Ad Soyad S** U**
  • Mesajlar 72
  • Beğeniler 13 / 11
  • Ticaret 0, (%0)
Merhabalar,
Başlıkta bahsetmek istediğim olay şu,
While ile veri tabanından örneğin 10 satır veri var ve ben hepsini çektim, veri tabanına bir satır daha veri girdim ve gelip sayfayı yeniledim, o veride geldi ama o veri geldiği için ben bir echo yazdırmak istiyorum. yeni veri eklendi diye.

Yani sayfayı yenilediğim de veri tabanına yeni veri eklenmiş ise yeni veri eklendi yazsın, ama bir önceki tablonun aynısı geldiyse hiç bir şey yazmasın. Bunu nasıl yapabilirim yardımcı olursanız sevinirim.
 

 

wmaraci
reklam

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
Verileri çekerken, $_SESSION["sonid"] = $id; şeklinde son gelen idi sessiona kaydedin.
Listeleme sırasındada if( $id > $_SESSION["sonid"] ) sorgusu ile de son eklenen verinin id nosu öncekinden büyük olacağı için if sorgusu ile "yeni veri eklendi" gibisinden bildiririm verebilirsiniz
 

 

loss07 loss07 WM Aracı Kullanıcı
  • Üyelik 25.03.2019
  • Yaş/Cinsiyet 28 / E
  • Meslek I-T
  • Konum Antalya
  • Ad Soyad S** U**
  • Mesajlar 72
  • Beğeniler 13 / 11
  • Ticaret 0, (%0)
mantık hatası oluyor,

Veriyi çek - > son id sessionla -> tekrar sorgu yap son id yukardaki sorguyla aynı oluyor.

Diğer yolu sessionu sorgulayıp döngünün yukarısında kullanamaya çalışırsam hata alıyorum.
berkaycatak

kişi bu mesajı beğendi.

basich basich WM Aracı Kullanıcı
  • Üyelik 24.08.2018
  • Yaş/Cinsiyet 28 / E
  • Meslek Maliyeci
  • Konum Uşak
  • Ad Soyad L** H**
  • Mesajlar 890
  • Beğeniler 109 / 319
  • Ticaret 8, (%100)
Sayfanin sonunda sessionla count komutuyla mysql deki satir sayisini say ve yaz. Ardindan sayfa basinda son sayimi sorgulat. Suanki sayi sessiondaki sayidan fazlaysa eklenmis diye ibare cikart.
 

 

wmaraci
wmaraci

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Aslinda edcsmile'ın sistemi doğru ama size uygun olmayabilir. Biz uyariyi nereye koyacağinizi, tasariminizin nasil olduğunu bilemeyiz.

Veriler çekilir;
1-ali
2-veli
(burada "session id" 2 diye kaydolur.

Sonraki sayfa yenilemede;
1-ali
2-veli
3-hüseyin
(burada "session id" 3ten (yani son id'den) küçükse buraya uyarı mesajı yazılır ve "daha sonrasında" da session id 3 olarak değiştirilir.
 

 

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
$say = 0;
döngü {
if( $id > $_SESSION["son_id"] )
{
// işlemler
$say++;
$_SESSION["son_id"] = $id;
}
}

echo "{$say} adet yeni ürün eklenmiş.";


Sistem bir kere son ürünü tanıması lazım. Sistem (session) son id nosunu alıp kayıt aldıktan sonra tekrar sayfa yenilendiğinde bildirim vermek istiyorsanız eğer sayfanın başında ürünleri çekiceksiniz (foreach kullanmadan) son ürünün id numarasını alıp session ile karşılaştıracaksınız. Buna görede bildirim verirsiniz if-else mantığında. Ondan sonra listeleme işine devam ettirirsiniz yukarda belirttiğim kod ile tekrar id nolarını eşitlerisiniz. Yani her halükarda sistem bi kere döngüden geçicek veya bir şekilde son id nosunu sessiona tanıtcaksınız. Ondan sonra bu işlem tekrarlandığında if else mantığında sayfanın başında veya farklı bi yerinde işlemleri yaptıracaksınız
loss07

kişi bu mesajı beğendi.

loss07 loss07 WM Aracı Kullanıcı
  • Üyelik 25.03.2019
  • Yaş/Cinsiyet 28 / E
  • Meslek I-T
  • Konum Antalya
  • Ad Soyad S** U**
  • Mesajlar 72
  • Beğeniler 13 / 11
  • Ticaret 0, (%0)

edcsmile adlı üyeden alıntı

$say = 0;
döngü {
if( $id > $_SESSION["son_id"] )
{
// işlemler
$say++;
$_SESSION["son_id"] = $id;
}
}

echo "{$say} adet yeni ürün eklenmiş.";


Sistem bir kere son ürünü tanıması lazım. Sistem (session) son id nosunu alıp kayıt aldıktan sonra tekrar sayfa yenilendiğinde bildirim vermek istiyorsanız eğer sayfanın başında ürünleri çekiceksiniz (foreach kullanmadan) son ürünün id numarasını alıp session ile karşılaştıracaksınız. Buna görede bildirim verirsiniz if-else mantığında. Ondan sonra listeleme işine devam ettirirsiniz yukarda belirttiğim kod ile tekrar id nolarını eşitlerisiniz. Yani her halükarda sistem bi kere döngüden geçicek veya bir şekilde son id nosunu sessiona tanıtcaksınız. Ondan sonra bu işlem tekrarlandığında if else mantığında sayfanın başında veya farklı bi yerinde işlemleri yaptıracaksınız


mehmet01 adlı üyeden alıntı

Aslinda edcsmile'ın sistemi doğru ama size uygun olmayabilir. Biz uyariyi nereye koyacağinizi, tasariminizin nasil olduğunu bilemeyiz.

Veriler çekilir;
1-ali
2-veli
(burada "session id" 2 diye kaydolur.

Sonraki sayfa yenilemede;
1-ali
2-veli
3-hüseyin
(burada "session id" 3ten (yani son id'den) küçükse buraya uyarı mesajı yazılır ve "daha sonrasında" da session id 3 olarak değiştirilir.


basich adlı üyeden alıntı

Sayfanin sonunda sessionla count komutuyla mysql deki satir sayisini say ve yaz. Ardindan sayfa basinda son sayimi sorgulat. Suanki sayi sessiondaki sayidan fazlaysa eklenmis diye ibare cikart.


Öncelikle satır sayısı ile yapamam çünkü satır sayısı ile başka kişilerde etkilenir.

Ben konuyu size anlatayım siz yorumlayın.

Benim bitane siparişlet tablom var bu tabloya farklı farklı kişiler sipariş girebiliyor.

Ahmet ve mehmet olsun mehmet kendi kullanıcısına girerse sadece kendi kullanıcısına gönderilen siparişleri görür. Ahmette aynı şekilde.

Bu bilgilere göre benim her 15 sn de jquery ile yenilenen bir sayfam var ve bu sayfa her yenilendiğinde veriler yeniden çekiliyor doğal olarak. Benim amacım yenilendiğinde bir önceki verilerden +1 fazla veri girilmiş ise ses çıkartmak.

Yani her 15 saniyede bir yenilenen sayfaya bir önceki yenilemeden farkı, yeni veri girilmiş ise ses çalacak.


Bunuda mantık olarak şu şekilde yapmayı düşündüm çekilen son veririn id si örneğin 5 bu id yi arkadaşın dediği gibi sessiona atadım ve sessionun değeri 5 oldu
sonra aşağıda yeni bir sorgu ile yine son id yi aldım oda 5 ve değerler eşit oldu yani iş çıkmaza giriyor. yukarıda ki döngüde sessionun değeri herzaman son id olacak aşağıdada herzaman son id olacak bu şekildede olmuyor.
 

 

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
"Bunuda mantık olarak şu şekilde yapmayı düşündüm çekilen son veririn id si örneğin 5 bu id yi arkadaşın dediği gibi sessiona atadım ve sessionun değeri 5 oldu
sonra aşağıda yeni bir sorgu ile yine son id yi aldım oda 5 ve değerler eşit oldu yani iş çıkmaza giriyor. yukarıda ki döngüde sessionun değeri herzaman son id olacak aşağıdada herzaman son id olacak bu şekildede olmuyor."

Hocam son id yine 5 oldu diyosunuz demekki yeni ürün gelmemiş o sıra :) Siz ürünleri çektiğinizde ne kadar ürün varsa ;
1-ahmet
2-mehmet
x
x
5-dursun

Kodu attım size zaten yukarda ; döngü içerisinde bu değeri kaydediyorsunuz fakat if-else içerisinde sorgulatıcaksınız. Session no su 5. Yeni ürün eklendiğinde id no veritabanında 6 olacaktır. 15 saniye sonra tekrar sorgulandığında if( $id > session yani 5 ) olacağı için sizde ses olayını verdireceksiniz

Hani ney çıkmaza giriyo onu anlamadım :) Döngü içerisinde her seferde if komutu zaten çalışacağı için önceki sonrakinden küçük olacağı için her türlü işlem yaptırabiliyosunuz
 

 

loss07 loss07 WM Aracı Kullanıcı
  • Üyelik 25.03.2019
  • Yaş/Cinsiyet 28 / E
  • Meslek I-T
  • Konum Antalya
  • Ad Soyad S** U**
  • Mesajlar 72
  • Beğeniler 13 / 11
  • Ticaret 0, (%0)
Doğrudur onu daha denemedim ben önceki yazınıza itafen onları yazdım son dediğinizi denemem lazım teşekkürler bilgi için.















    include 'baglanti.php';
    $bayi_kimlik = 'ant001';

    //Çekilen bayi bilgilerinden bayi ismi ile, bayiye ait ürünleri çeker.
    $menu = $mysqli->prepare("SELECT * FROM siparisler WHERE bayi_kimligi='$bayi_kimlik' ORDER BY id DESC LIMIT 10");
    $menu->execute(array());
    while ($row = $menu->fetch(PDO::FETCH_ASSOC))
    {
    $id = $row['id'];
    $masa_no = $row['masa_no'];
    $ssiparis = $row['siparis'];
    $adet = $row['adet'];
    $starih = $row['tarih'];
    $sfiyat = $row['fiyat'];
    $skontrol = $row['kontrol'];

    ?>















Kontrol

Masa

Sipariş

Adet

Birim fiyatı

Tarih




if ($skontrol == 0) {
echo '';
}
else
echo '';
?>




Uyarlamam gereken kod yukarıda ki gibi
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al