cRobert adlı üyeden alıntı:
mesajı görüntüle
PHP - Tarih Karşılaştırma Sorunu Yardım
19
●2.611
- 18-03-2018, 14:06:45Üyeliği durdurulduHayır 18.03.2018 şeklinde tutuyorum veritabanında. Yanlız ben sorunu biraz önce yanlış izah ettim sanırım. Yaşadığım sorun aşağıdaki gibi verileri db'den çekiyorum fakat yine konu başlığımda belirttiğim gibi gün bugünden küçükte olsa yıl örnek veriyorum 2019 olduğu için toplam 1 adet kaldı gösteriyor. Yılı büyük algıladığı için sorun yaşıyorum normalde 0 adet kaldı göstermesi gerekiyor.
$select = $baglanti->query("select * from takip where sktarih < '".$buguntarih."'"); $rows = $select->num_rows; echo '<center>Toplam <b>'.$rows.'</b> adet kaldı.</b></center>';hesapadim adlı üyeden alıntı: mesajı görüntüle - 18-03-2018, 14:25:14MySQL STR_TO_TIME fonksiyonunu araştırıncRobert adlı üyeden alıntı: mesajı görüntüle
- 18-03-2018, 14:34:20Üyeliği durdurulduTeam versem bağlanıp yardımcı olma şansınız varmıdır rica etsem sizden?
hesapadim adlı üyeden alıntı: mesajı görüntüle - 18-03-2018, 14:37:45maalesef :/cRobert adlı üyeden alıntı: mesajı görüntüle
WHERE STR_TO_TIME(tarihsutunu) < " . strtotime("01-01-2017"));
olabilir belki
- 18-03-2018, 14:43:57Üyeliği durdurulduTeşekkürler ancak inanırmısınız olmadı veya ben yapamadım.
$select = $baglanti->query("select * from takip where STR_TO_TIME(sktarih) < " . strtotime("19.03.2018"));hesapadim adlı üyeden alıntı: mesajı görüntüle - 18-03-2018, 14:59:49unix_timestamp dener misiniz str_to_time yerinecRobert adlı üyeden alıntı: mesajı görüntüle
- 18-03-2018, 15:12:01Üyeliği durdurulduYok hocam ne yaptıysam olmuyor ne tarihmiş yahu olmadı gitti.
$select = $baglanti->query("select * from takip where unix_timestamp(sktarih) < " . strtotime("19.03.2018"));hesapadim adlı üyeden alıntı: mesajı görüntüle - 18-03-2018, 20:11:50Buyuk ihtimal string olarak tutmaya calistigin icin olmakta. Sutun turunu "date" yaptiginda sorun cozulmekte. Asagiya ornek sql kodlarini birakiyorum. Cok string olarak tutmak isterseniz veritabaninda tarihleri "Yil - Ay - Gun" olarak tutmaniz gerekmekte. Yinede tek bir sorgu ile cozume kavusabilirsiniz.
$tarih = strtotime( date('Y-m-d') ); $query = $db->query("SELECT * FROM tarihler WHERE UNIX_TIMESTAMP(sktarih) < '{$tarih}'")->fetch(PDO::FETCH_ASSOC); if ( $query ){ print_r($query); }$tarih = date('Y-m-d'); $query = $db->prepare("INSERT INTO tarihler SET sktarih = ?"); $insert = $query->execute(array( $tarih ));Not: "sktarih" sutununun turu "date" olarak ayarlanmistir.