dedlfix: MySQL Query - Finde den Fehler - ich verzweifel

Beitrag lesen

echo $begrüßung;

PHP Version 5.2.0

Das PHP ist bei deinem Problem nebensächlich. Du bekommst eine MySQL-Fehlermeldung, also hat MySQL ein Problem. Und um dieses genau nachzustellen benötigt man mitunter die gleiche MySQL-Version.

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 'ORDER BY news.datum DESC LIMIT 0, 10' at line 1
PHP Auszug:

Gefragt war nicht nach PHP-Code, der ein Statement zusammensetzt, sondern das zusammengesetzte Statement selbst. In deinem Fall also die Ausgabe des Inhalts von $sql. Das von deinem hier gezeigten PHP-Code erzeugte Statement erzeugt bei mir immer noch keinen Syntaxfehler. Schau also bitte nach, was ein echo $sql; ergibt. Wenn du daran nichts Fehler Verursachendes erkennen kannst, hilft es, den String mal durch urlencode() zu schicken, um somit möglicherweise sich als Leerzeichen getarnte Steuerzeichen besser erkennen zu können.

Noch etwas Nebensächliches, was nicht mit deinem Fehler oder dessen Behebung zusammenhängt:

$sql="SELECT artikel, title, DATE_FORMAT(datum,'%W %d.%M %Y') AS date1, author,num FROM ".$table3." ORDER BY news.datum DESC LIMIT ".$artikel_anz_start.", $artikel_anz_end";

Ein in "" eingefasster String ist in der Lage, Variablen aufzulösen. Meiner Meinung nach ist es unübersichtlich, einerseits einen ""-String zu verwenden, anderersets seine Eigenschaften nicht zu auszunutzen. Durch das Rein-Raus hat man mehr Zeichen zu verwenden, was schon wieder eine potenzielle Syntaxfehlerquelle ist, diesmal aber eine die das PHP betrifft. Du hältst auch das String-Beenden-und-Variable-Anknüpfen nicht konsequent durch, denn $artikel_anz_end ist noch im String verblieben. Zur sonst von mir propagierten sprintf()-Funktion rate ich dir in diesem Fall nicht, weil du sonst für die %-Zeichen der DATE_FORMAT-Funktion Gegenmaßnahmen einleiten müsstest. Man könnte auch diesen Format-String zur Variable machen, und hat, falls mehrere SQL-Staments mit dieser Formatierung verwendet werden, dann nur eine Stalle zu ändern, wenn sich mal eine Änderung des Formats ergibt, ... aber das sind nur Nebensächlichkeiten, die du nicht weiter betrachten solltest, bevor du nicht dein eigentliches Problem gelöst hast.

echo "$verabschiedung $name";