Zur Navigation

select mit Variable und limit

1 webuser

Hallo,
ich will bei einem Gästebuch nach Jahren filtern.
Die Variable $search ist mit der Jahreszahl versehen.
Es werden aber keine Daten angezeigt.
(Ohne die "WHERE myjahr = '$search' " wird alles komplett angezeigt.)
Gruß
Webuser

$abfrage = "SELECT name, bdatum, year(bdatum) as myjahr FROM gaestebuch WHERE myjahr = '$search' order by bdatum LIMIT $start, $eintraege_pro_seite";

31.10.2019 09:03

2 Jörg

In solchen Fällen empfiehlt es sich, zum Debuggen etwaige SQL-Fehler ausgeben lassen (bei Verwendung von mysqli z.B. mit mysqli_error()). Als Fehler würde in diesem Fall wohl bemängelt, dass die Spalte myjahr im WHERE Statement (noch) nicht bekannt ist. Sie wird erst nach dem Fund der Datensätze als Alias gebildet. Alternativ könnte man mit HAVING statt WHERE arbeiten, welches nach der Selektion die Datensätze filtert. Von der Performance ist es aber vermutlich besser, in dem WHERE Statement $search direkt mit YEAR(bdatum) abzugleichen.

31.10.2019 09:38 | geändert: 31.10.2019 09:41

3 webuser

Hallo,
ich habe die Where-Jahr Varible geändert.
Schon läuft es.
"..Where year(bdatum) = $search order by...."
Gruß
Webuser

31.10.2019 10:38

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]