Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
09, 2008, 04:34:09 am
42744 Mesaj 8090 Konu Gönderen: 17931 Üye
Son üye: medist
Turk-Php.Com Forum  |  Yardım Forumları  |  PHP Yardım Forumu  |  PHP&SQL de büyüktür sorgusu... « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: PHP&SQL de büyüktür sorgusu...  (Okunma Sayısı 472 defa)
abdullahcakir
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 11


Üyelik Bilgileri
PHP&SQL de büyüktür sorgusu...
« : 03, 2006, 07:59:23 am »

Merhaba arkadaşlar,
Şimdi fuarlar diye bir tablom var ve tarih1 ve tarih2 alanları varchar(250).Tarihler 01.01.2005 şeklinde aralarında . olarak tutuluyor
Benim yaptığım bugünün tarihini $simdi=date("d.0n.Y"); şeklinde alıyorum.
Benim istediğim şey bugünün tarihi tarih1 ve tarih2 alanlarındaki değerler arasındaysa veya eşitse adi adlı alandaki veriyi çekmek.

$sqltakvim="SELECT * FROM fuarlar WHERE '$simdi'<=tarih2 ORDER BY fid LIMIT 0,10";
$sorgutakvim=mysql_query($sqltakvim,$baglanti);

şeklinde yazınca örneğin şu anki tarih 03.02.2006 veritabanındaki bir kayıt ise 02.02.2007 ise sadece 03 ile 02 yi karşılaştırıyor ve doğal olarak o veriyi çekmiyor.

Bunu nasıl yapabilirim???
Logged
cemcem
PHP Stajyeri
**
Offline Offline

Mesaj Sayısı: 151


the Coding is a Lifestyle


Üyelik Bilgileri WWW
Ynt: PHP&SQL de büyüktür sorgusu...
« Yanıtla #1 : 03, 2006, 09:05:38 am »

bence tarih olaylarinda mktime(); fonksiyonunu kullanmalisin bu sekilde kiyaslama daha mantikli olacaktir ayrica mysql default date YYYY-MM-DD seklindedir yani ornek olarak 2006-02-02 seklinde ayrica sen tarih formatini string olarak yerine integer verirsen ozaman buyuk kucuk kiyaslamasinda sorun yasamazsin
Logged

Impetus Plexsus
SavasTURK
Ziyaretçi


E-Posta
Ynt: PHP&SQL de büyüktür sorgusu...
« Yanıtla #2 : 20, 2006, 11:20:54 pm »

tarih alanlarını VARCHAR olarak tutman yanlış  tabi DATE olarak tutman daha makûl zira MySQL'in envai çeşit tarih fonksiyonu var bkz. date-and-time-functions
örn. tarih alanların veri türü DATE olsaydı sorgu şöyle olurdu
Kod:
SELECT f.fid, f.adi FROM fuarlar AS f WHERE CURDATE() <= f.tarih2 ORDER BY f.fid,f.adi LIMIT 0, 10
mesela son 30 günün kayıtlarını çekmek istiyorsun
Kod:
SELECT f.fid, f.adi FROM fuarlar AS f WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= f.tarih2
Logged
Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


Turk-Php.Com Forum | SMF Forum Software © 2005, Simple Machines LLC. All Rights Reserved.