ugrás a tartalomhoz

Dátum -tól -ig lekérdezés

dezs · 2007. Már. 14. (Sze), 10.28
Helló!

Kis segítségre lenne szükségem
Lehet láma a kérdés
Egy lekérdezést kellene csinálnom egy adatbázisból ahol dátumtól dátumig kellene kilistáznom a sorokat de már a lekérdezésnél elakadtam
ilyenekkel próbálkoztam:

$parancs = mysql_query("SELECT * FROM $tablanev WHERE logDate >= '$datumtol' logDate <= '$datumig'");

de nem megy!
ha valakinek volna 5lete megköszönném ha megosztaná velem előre is kösz
 
1

Ui:

dezs · 2007. Már. 14. (Sze), 10.30
ja és elfelejtettem a dátum formátuma: 2007-01-14
a tábla tipusa: date
2

AND kimaradt

N0r3i · 2007. Már. 14. (Sze), 10.59
Szia!

Nem lehet hogy csak annyi a baj, hogy kimaradt az AND kötőszó?

$parancs = mysql_query("SELECT * FROM $tablanev WHERE logDate >= '$datumtol' AND logDate <= '$datumig'");
3

válasz

dezs · 2007. Már. 14. (Sze), 12.51
Az AND is benne volt a scriptbe csak ide felejtettem el beirni de nem müködik azzal se
Semmit nem talál erre a lekérdezést.
4

hand-coded query és BETWEEN

melon · 2007. Már. 14. (Sze), 13.40
Szerintem először próbáld meg legyártani kézzel a queryt, ha DATE a mezőtípus, akkor esetleg a BETWEEN használata segíthet. Ha megvan a query, akkor tedd be php-ba, lehet, hogy csak valamelyik változó nem megfelelő.
5

Megoldás

dezs · 2007. Már. 14. (Sze), 15.33
Nagynehezen megoldódott a probléma
a megoldás végül ez lett:
$parancs = mysql_query("SELECT * FROM $tablanev WHERE logDate = '$datumtol' && logDate = '$datumig' && logDate < '$datumtol' && logDate > '$datumig'");
Kösz a segítséget
6

és ez hogy?

gex · 2007. Már. 14. (Sze), 15.42
szavakra fordítva a feltételed:
dátum egyenlő $dátumtól ÉS dátum egyenlő $dátumig ÉS dátum kisebb mint $dátumtól ÉS dátum nagyobb mint $dátumig,
azaz a dátum egyenlő és kisebb is mint a $dátumtól változó tartalma, és ezzel együtt a dátum egyenlő és nagyobb is mint a $dátumig változó tartalma.

ez neked tényleg jó eredményt ad?
7

:)

dezs · 2007. Már. 14. (Sze), 16.21
rosz sort másoltam be figyelmetlen vagyok ma nagyon
ez müködik csak nagyon lassu
$parancs = mysql_query("SELECT * FROM $tablanev WHERE logDate LIKE '%$datumtol%' <> '%$datumig%'");
volna ötleted hogy hogy kellene megcsinálnom?
8

ez is érdekes

gex · 2007. Már. 14. (Sze), 17.06
szerintem a 4-es hozzászólásban említett módszert kéne kipróbálnod.

konkrétan próbáld ki ezt a parancsot:

<?php
$parancs = mysql_query("SELECT * FROM $tablanev WHERE logDate BETWEEN '2007-03-01' AND '2007-03-31'");
?>
ha így működik, akkor próbáld meg a változóidat belerakni (escape-elésre figyelni), írd ki a parancsot, ha ez is megvan akkor mennie kell.
between-ről bővebben itt, a lassúságon pedig segíthet, ha indexeket használsz.