v2.5.2
Giriş yap

zaman dolduysa 2 tabloyu güncelle

exe676
656 defa görüntülendi

merhaba arkadaşlar, basit bir ürün satın alma sistemi yapıyorum.
işlem özetle şu
kullanıcı ürünü alma talebinde bulunuyor.
Bakiyesi düşüyor.
5dk içinde ürünü almaz ise verdiği para tekrar bakiyesine yükleniyor.

kullandığım tablo yapısı şöyle.

-uye tablosu : üye bilgileri tutuluyor.
id - int
uyenick - string
bakiye - int

-urun : satılacak ürünler
id - int
fiyat - int
urunbilgi - string

-uyeurun tablosu : üyenin satın aldığı-iptal ettiği ürünler tablosu
-id - int
-durum - tinyint 0 iptal edildi, 1 bekliyor, 2 satıldı
-urunid - int satılan ürünün urun tablosundaki id kısmıyla bağlantılı
-uyeid - int satın alan üyenin uye tablosundaki id kısmıyla bağlantılı
-urunbilgi - string urun tablosundaki değer
-fiyat - int urun tablosundaki değer
-beklemetarihi - int işlemin yapıldığı zamandan 5 dk ilerisi.

üye bir ürünü alma butonuna basınca uyeurun tablosuna bilgiler eklendi, durum bilgisi 1(beklemede) oldu. uye tablosundan bakiyesi düştü.
beklemetarihi'ne o anki zamanın 5 dakika sonrası olarak eklendi..
buraya kadar herşey tamam.

ben istiyorum ki:
uyeurun tablosunda beklemetarihi şu anki zamanı 5 dakika geçen kayıtların durum bilgisi 0-iptal- olsun
ve
uyeurunun fiyat değeri uye tablosundaki bakiye bilgisine eklensin.

normalde php dosyasında birden fazla sql sorgusu ile bu işlemi yapıyorum. ama hantal geliyor.
bunu tek sorguda vs daha performanslı nasıl yaparım?

Cevap yaz
Cevaplar (2)
qplot
1313 gün önce

SELECT CURTIME() BURADAKI SELECT LER FAZLA OLDU DUZENLEME YOK SEN HALELDERSIN

qplot
1313 gün önce

$guncelle=$db->prepare("UPDATE tabloadin SET satisiptal=0 WHERE satistarih < SELECT CURTIME()");

TARZINDA YAPABILISIN

SELECT CURTIME() >>> SUANKI ZAMANDAN 5 DK ONCE OLANLARI 0 YAP DERSIN

< SELECT CURTIME() AND satisiptal=0 TARZINDA KULLANIZSANDA ESKI KAYITLARI CALISTIRMAZ SADECE satisiptal=1 OLANLARI GUNCELLER