mysql ve time fonksiyonu(SORU).

TeaMTurkeRŞenol TÜRKER

merhaba arkadaşlar urunler adında bir tablom var ve tablomda:

id(int)

urun_adi(varchar)

urun_kodu(varchar)

urun_adedi(varchar)

urun_goster(tinyint) 

urun_tarihi(int) 

olarak altı sutun var bu ürün tablomda urun_goster sutunu 0 olan urunleri listeliyorum.bu tablomda tam olarak yapmak istediğim şey şu;urun_tarihini time() foksiyonu yani unix formatı ile tutuyorum, bu tablomda php ile hiç işlem yapmadan mysql'e urun_tarihi bir günden veya bir aydan büyük olan ürünleri otomatikmen urun_goster alanını 1 yaptırmak istiyorum böyle birşey mümkünmüdür acaba? ştimeimdiden herkese teşekkürler.

2013-12-07 10:15:04

Php

alicilinAli Fırat Güler

bu mantıkla gidilirse pek kullanışlı olacağını sanmıyorum. Çünki her gün tüm tabloda update yapmak pek doğru bir iş değildir. Onun yerine bunu böyle yapmak yerine. çekerken bir where şartı koymak daha akıllıca.

Örnek;

SELECT * FROM urunler WHERE urun_tarihi > $time

Gibi bir sql cümlesi herşeyi çözer diye düşünüyorum.

Not: $time değişkeninin değerini Şimdiki zamandan 24*60*60 işleminin sonucunu çıkararak tutarsanız. 1 günden daha eski ürünler görünmez.

2013-12-07 18:55:33

Php

TeaMTurkeRŞenol TÜRKER

dediğin çok doğru ve mantıklı ali hocam fakat kodlarımı yazarken aklıma takıldı acaba mysql'e böyle bir işlem yaptırabilirmiyiz diye zaten sorumun başlığında'da belirtdim hocam parentez içerisinde soru diye yoksa bu sorunu çoktan aştım birde uzun bir aradan sonra biraz ufkum daraldığı için kafama takıldı kaldı bende sizlere bir sorayım aklımdaki soru işaretini öldüreyim dedim :)

2013-12-07 19:14:37

Php

fatihmertFatih Mert Doğancan

Unix formatını bilmediğim için tam nasıl yapılır bilmiyorum ama temel mantığı CASE ler ile yapabilirsin.

Benim de şöyle bir tablom olsun,

uyeAdi(varchar)

uyeYas(varchar)

uyeYas, 18 den küçükse uyeBan değerlerini 1 yapalım. değilse 0 kalsın.

SELECT *,
    CASE WHEN uyeYas <= 18 THEN 1
    ELSE 0
    END AS uyeBan
FROM uyeler

uyeBan adında yeni kolon oluşturduk değerler oraya işlendi. Yani şöyle oldu;

Bu işlem kalıcı değildir. Yapmak istediğin her seferde bu kontrolü gerçekleştirmek zorundasın.

Ayrıntılı bilgi: http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html#operator_case

İyi çalışmalar..

2013-12-07 19:17:36

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro