WHERE klausel funzt nicht
stefan
- datenbank
hallo,
ich möchte nach einem bestimmten Monat suchen. Ich habe die Abfrage folgendermaßen gelöst:
$result = mysql_query("SELECT ID, date_format(datum, '%d.%m.%y') as datum, date_format(bis, '%d.%m.%y') as bis, sportart, ereignis FROM daten WHERE (MONTH(datum) LIKE '%$month%' AND bundesland LIKE '%$bundesland%' AND sportart LIKE '%$sportart%')");
Leider bekomme ich kein Ergebnis, aber auch keine Fehlermeldúng.
In der $month wird aus einem Formular der Wert von 01-12 übergeben, nachdem in der DB gesucht werden soll.
(Mit MONTH(datum) = '%$month%' hab ich es auch schon versucht, hat aber nichts gebracht)
vielen Dank für eure Hilfe
grüße Stefan
Seid gegrüßt!
Wie unsere Lordschaft aus seinem Schreiben entnehmen, hat er die Aufgabe eben nicht gelöst. O tempora, O mores, wenn doch der Pöbel nur ein einziges Mal korrekt formulieren könnte!
Da er kein Ergebnis erhält, was auch immer das bedeuten mag, sei es "0 rows returned", sei es, daß sich die Maschine aufhängt - und er auch keine Fehlermeldung vorweisen kann, empfehlen unsere Lordschaft, ein geeigneteres Datenbanksystem zu verwenden, welches, wie zum Beispiel Oracle, in der Lage ist, Fehlermeldungen zu erzeugen.
Unsere Lordschaft hätten sich die Mühe machen können, einen Fehler in seinem SQL-Statement zu suchen, doch leider müssen wir just in diesem Moment zum Fünf-Uhr-Tee, so daß dafür keine Zeit bleibt; gleich danach wohnen unsere Lordschaft einer Theateraufführung der Erstklässler der "Lord-Helmchen-Grundschule" unserer Lordschaft bei.
Lord Helmchen
Hi Stefan
Bei Datumsvergleich solltest Du nicht mit Like arbeiten, Du vergleichst schliesslich ein Datumbestandteil, nicht einen String
Ausserden wuerde ich der Uebersichtlichkeit halber die Variable nicht "$month" nennen, da month ja schon belegt ist in SQL
Versuche es mal mit folgendem Prinzip:
WHERE MONTH(datum)=$pmonth
(keine Anfuehrungszeichen, wenn's nicht klappt, lass Dir mal MONTH(datum) und $pmonth ausgeben ob's wirklich gleich ist)
oder auch
WHERE MONTH(datum)=MONTH($datum)
oder
WHERE MONTH(datum)=MONTH(NOW())-1
oder was auch immer Du brauchst.
Gruss, Mel
hallo Mel,
vielen Dank für Deine Hilfe.
Ausserden wuerde ich der Uebersichtlichkeit halber die Variable nicht "$month" nennen, da month ja schon belegt ist in SQL
Das hab ich versucht; komischer Weise klappt es nur mit $month. Wenn ich den Variablen Name ändere funzt es nicht mehr...
woran kann das liegen?
betse grüße
stefan
Hallo,
Das hab ich versucht; komischer Weise klappt es nur mit $month. Wenn ich den Variablen Name ändere funzt es nicht mehr...
Ja, hast Du die Variable dabei auch in deinem php code umbenannt, sie kommt ja schliesslich irgendwo her?
Gruss, Mel
klar,
Ja, hast Du die Variable dabei auch in deinem php code umbenannt, sie kommt ja schliesslich irgendwo her?
und zwar habe ich ein Select Feldn indem die Variable gefüllt wird:
<select name="month" VALUE="<? $month ?>">
<option value="">alle</option>
<option value="1">Januar</option>
usw.
<option value="12">Dezember</option></select>
Wenn ich hier month ändere und in meiner SQL Abfrage auch erhalte ich kein Ergebnis...
Irgendwie geht es nur mit $month; was natürlich Quatsch ist. Nu´r woran es liegt weiß ich nicht.
nochmals vielen Dank
stefan
Hi,
Nicht dass ich Dich fuer bloed halte, aber nur um auf Nr Sicher zu gehen ;)
Hab sowas ja auch schon oefter uebersehen.
<select name="neuername" >
(das VALUE="<? $neuername ?>" brauchts nicht, der Value kommt ja aus den Options)
Ansonsten kann ich's mir auch nicht erklaeren.
Viel Erfolg noch,
Mel
jetzte isses klar,
bisher hab ich immer mit asp gearbeitet und da muss die Variable so übergeben werden.
prima & danke
stefan
(das VALUE="<? $neuername ?>" brauchts nicht, der Value kommt ja aus den Options)