ugrás a tartalomhoz

Dátum lekérdezés hónap szerint

DsA · 2007. Már. 5. (H), 21.37
Sziasztok!
Olyan kérdésem lenne, hogy hogy lehetne olyat csinálni
hogy hónap szerint lekérdezni az adatbázisból
így néznek ki a dátumok az adatbázisban:
2007-02-10
2007-03-04
és ehhez lenne egy lenyíló menü amiben benne vannak a hónapok: "Január, Február, Március..."
és ha kiválasztom a márciust akkor csak a 3-ik havi adatokat adná ki
na most minden megy ebből csak a dátumos része nem tehát valami ilyesminek kéne lenni:
mysql_query("SELECT * FROM `tabla` WHERE `date`='??Március??'");
ez addig oké meg a select menü is meg a vele kapcsolatos dolgok is csak mit írjak a where után? tudom hogy valamit az mktime-al meg a getdate-el kéne alkotni de ezeket annyira nem tudom :\
valami ötlet valakinek?
előre is köszönök mindent!
 
1

Sokféle módja van

csla · 2007. Már. 5. (H), 21.45
Ez attól függ, hogy milyen formátumú a dátum meződ az adatbázisban. Ha pl. DATE vagy DATETIME, akkor a legegyszerűbben
...WHERE date LIKE "'.$_POST['honap'].'%"
, amennyiben a SELECT OPTION-ök értéke "2007-02", "2007-03", stb., valamit POST metódussal küldöd az adatokat.
2

tipus

DsA · 2007. Már. 5. (H), 21.56
a mező tipusa DATE tehát akkor csak így LIKE-al? akkor ok
és az nembaj, hogy a select option-ben benne van a nap is? (2007-02-02)
köszi még egyszer
3

De baj

csla · 2007. Már. 5. (H), 22.06
Úgy akkor nem jó, mert akkor nem hónapra fog keresni. Vagy vedd ki a napot az OPTION értékéből, vagy pedig - ha az valamiért nem lehetséges - substr() függvénnyel csak az érték első 7 karakterét használd fel az SQL query összeállításánál.
4

jajj

DsA · 2007. Már. 5. (H), 22.35
jajj jajj jajj
most kapcsolok hogy már másról beszélünk mint amit írtam először, énhibám bocsi
tehát az OPTION-ökben Január, Február, Március ez lenne...
6

value

Joó Ádám · 2007. Már. 5. (H), 22.54
Az option tag szövege legyen a hónap magyar neve, a value tulajdonsága pedig valami, amit meg tudsz etetni a like-os queryvel.
7

array

dummy · 2007. Már. 5. (H), 23.00
Ha fenti okokból a $_POST['honap'] változóban pl a "Március" stringet kaptad, azt átalakíthatod pl egy előre megadott tömbből:

$honap_nevek = array('Január'=>1, 'Február'=>2, 'Március'=>3, ...);
$honap_szama = $honap_nevek[$_POST['honap']];
És akkor a $honap_szama változód a 3-as értéket fogja tartalmazni.

Szerk: De az előttem szóló Ceriak normálisabb megoldását szívleld meg inkább :D
5

sql injection

Cadeyrn · 2007. Már. 5. (H), 22.37
Üdv!

Azért érdemes egy biztonsági függvényt lefuttatni az összes adatbázisba küldött $_POST adaton, hála az SQL injection-nek.
8

SQL függvények...:)

Szekeres Gergő · 2007. Már. 5. (H), 23.12
" ... DATE_FORMAT(date, "%m") = ".intval($_REQUEST['month'])...."

date format függvény kiszedni a szabványos dátumból egy megadott paramétert. Annyit azért nem árt tenni, hogy DATE formát használsz a mezőnek..
9

ohh

DsA · 2007. Már. 6. (K), 18.15
ohh köszi! így csinálom! amugy igen, date a mező tipusa!
köszi másoknak is!