ugrás a tartalomhoz

Sql aktuális évi és havi adatok lekérése

geforce9600gt · 2014. Május. 24. (Szo), 22.49
Sziasztok

Az alábbi lekérést hogy kellene átírni, hogy mindíg az aktuális év aktuális hónapjának az adatait megkapjam?

A táblában a foglalas_datum mező tipusa datetime.

Köszönöm előre is.
$check = mysqli_query($kapcs, "SELECT foglalas_id, foglalas_nev,foglalas_tel,foglalas_email,foglalas_erkez_date,foglal_iroda_id, foglal_type,
		foglal_iroda_id FROM foglalas
        WHERE foglal_iroda_id='$iroda' AND YEAR(foglalas_datum) = YEAR(NOW()) AND MONTH(foglalas_datum) = MONTH(NOW()) 
		ORDER BY foglalas_id DESC") or die("Sql Error".mysqli_error($kapcs));
 
1

Formazd at

janoszen · 2014. Május. 25. (V), 11.51
Kerlek, formazd at ugy, hogy erdemben olvasni is lehessen, illetve ird le, hogy meddig jutottal es hol akadtal el a problema megoldasaban.
2

Átalakítás javaslat

Steve31 · 2014. Május. 26. (H), 15.02
A select utasítást rakd bele egy nézettáblába(view), persze kivétel a következő rész: "foglal_iroda_id='$iroda'" ezt majd a PHP kódba rakd bele. Sokkal átláthatóbb lesz a kód, sőt a Select utasítást teszteld PhpMyAdmin-ba vagy Mysql WorkBench-ben.
3

Ugyan nem a kérdésedre

H.Z. · 2014. Május. 26. (H), 19.04
Ugyan nem a kérdésedre válasz, de próbáld átírni prepared statementre, mert így a WHERE feltételedben van némi SQL injection lehetőség, azt hiszem.
4

Menekülj!

Hidvégi Gábor · 2014. Május. 26. (H), 20.06
A mysqli_real_escape_string() is megteszi.
5

De biztonságosabb átszokni a

H.Z. · 2014. Május. 26. (H), 21.35
De biztonságosabb átszokni a prepared statement használatára.
Akkor nem tudja kifelejteni az escape-elést. :)
6

Kódszervezés kérdése.

Hidvégi Gábor · 2014. Május. 27. (K), 07.19
Ha szeretnél írni egy általános függvényt a problémára, az printf-szerűen fog kinézni mindkét esetben, de alkalmazásfüggő, hogy melyiket éri meg megvalósítani:
1, ha ugyanazt a lekérdezést egy kérésen belül több különböző értékkel hívod meg, akkor talán a prepared jobb választás
2, bizonyos esetekben nem lehet használni prepared statementeket, például WHERE feltételben az IN zárójelében, vagy PDO-ban tábla és mezőneveknél

Mivel egy átlagos alkalmazás esetén az 1-es pont ritkán fordul elő, a mysqli_real_escape_string()-es megoldás rugalmasabb.