Brauche dringend Hilfe

maarian

Erfahrenes Mitglied
Hallo,

Seit neustem funktioniert diese Abfrage nicht mehr

PHP:
$sql = "SELECT * FROM gaestebuch WHERE empfänger='$gbuser' AND gelesen='0' ORDER BY zeit DESC LIMIT $start, $eintraege_pro_seite";

    $result = mysql_query($sql) OR die(mysql_error());

Fehlermeldung:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?nger='user' AND gelesen='0' ORDER BY zeit DESC LIMIT 0, 5' at line 1


der macht aus meinem Ä immer nen ?


Warum ?kann mir jemand helfen
 
Man sollte keine Sonderzeichen und Umlaute in PHP, SQL, HTML, usw -code nutzen.

Dann ist es so ein bissl eleganter:
PHP:
 $sql = "SELECT * FROM gaestebuch WHERE empfaenger='".$gbuser."' AND gelesen='0' ORDER BY zeit DESC LIMIT ".$start.", ".$eintraege_pro_seite;
 
1.) Schreib bitte einen aussagekräftigeren Titel
2.) In einer SQL Abfrage bzw. als Tabellennamen solltest du keine Umlaute verwenden, da es zu Problemen kommen kann, wenn der Header bzw. das charset nicht definiert ist.

Also einfach ä zu ae machen :)


EDIT: Sim war schneller
 
MySQL speichert sämtliche Bezeichner in UTF-8. Also solltest du das auch verwenden. Falls deine Dateien nicht UTF-8-kodiert sind, kannst du auch Folgendes schreiben:
PHP:
$sql = "SELECT * FROM gaestebuch WHERE empf\xC3\xA4nger='$gbuser' AND gelesen='0' ORDER BY zeit DESC LIMIT $start, $eintraege_pro_seite";
 
HMM empf\xC3\xA4nger funktioniert auch nicht gibt er die gleiche fehlermeldung aus.

Ja dann müsste ich ja jetzt in meiner DB die spalte umbenennen aber da bei mir auch user Online sind und es schon über 5000 Gästebucheinträge sind die jedem User zugeordnet gibt wird es dann probleme geben.


GIbt es nicht noch eine Möglichkeit denn normalerweise hat die ja die ganze Zeit funktioniert
 
Zurück