Für mich unverständliche Fehlermeldung
Anna
- php
Hallo!
Ich habe gerade ein Bewertungsscript für FanFictions geschrieben, was soweit auch eigentlich funktioniert (hatte). Aber jetzt hatte ich noch was geändert und nun kommt folgende Fehlermeldung:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web698/html/fanstuff/vote/vote-add.php on line 60
Die kommt, wenn man ausgewählt hat wie man die FF gefunden hat (z.B. 1 für miserabel und 5 für genial).
Versteht jemand diese Meldung? Ich nämlich nicht. Bzw. nicht wirklich. Im Zusammenhang mit dem Script fällt mir kein Fehler auf:
$sql = "SELECT ID,Stimmen,Punkte FROM FanFiction WHERE ID = '".$FFvote['ID']."'";
$result = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$neuStimmen = $row['Stimmen'] + 1;
$neuPunkte = $row['Punkte'] + $_POST['vote'];
$sql = "INSERT INTO FanFiction
(Stimmen,Punkte)
VALUES
('".$neuStimmen."',
'".$neuPunkte."')
WHERE
$FFvote['ID'] = '".$row['ID']."'";
mysql_query($sql) OR die(mysql_error());
echo "Deine Stimme wurde gezählt! (:";
Da wo die >> sind, ist Zeile 60, die die Fehlermeldung ja angibt...
Ich hoffe mir kann da jemand helfen!... :)
VlG,
Anna
Hi,
WHERE
$FFvote['ID'] = '".$row['ID']."'";
Da wo die >> sind, ist Zeile 60, die die Fehlermeldung ja angibt...
genau da ist auch das Problem...Das WHERE (Zeile 59) gehört zu einem SQL-String. Dann kommt das $FFvote, das ist eine Variable, also musst du es Quoten:
WHERE
".$FFvote['ID']." = '".$row['ID']."'";
Benutzt du eigentlich nen Editor mit Syntax-Highlighting? Damit wäre es dir sofort aufgefallen.
MfG,
Juan
Hi Juan,
".$FFvote['ID']." = '".$row['ID']."'";
Wenn man aber schon Double-Quotes verwendet, dann kann man auch direkt
$sql = "[…] {$FFvote['ID']} = {$row['ID']}"
verwenden.
MfG, Dennis.
Hi,
".$FFvote['ID']." = '".$row['ID']."'";
Wenn man aber schon Double-Quotes verwendet, dann kann man auch direkt
$sql = "[…] {$FFvote['ID']} = {$row['ID']}"
verwenden.
klar kann man das, aber da sie es die ganze Zeit mit Strinkonkatenation gemacht hat, wollte ich dabei bleiben.
MfG,
Juan
Hi Anna,
$FFvote['ID'] = '".$row['ID']."'";
Guck dir mal den Unterschied an, wie du auf $FFvote['ID'] und wie du auf $row['ID'] zugreifst ;-)
MfG, Dennis.
Hi Anna,
$FFvote['ID'] = '".$row['ID']."'";
Guck dir mal den Unterschied an, wie du auf $FFvote['ID'] und wie du auf $row['ID'] zugreifst ;-)
MfG, Dennis.
Hi Dennis...
Danke schonmal für den Tipp... Syntax-Highlightning hab ich, ist mir trotzdem nicht aufgefallen.. ;) ^^
Trotz allem funktioniert es nicht... Jetzt kommt folgender Fehler:
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 'WHERE 2 = '2'' at line 6
?? Tja, geht also noch nicht... Könnt ihr mir noch weiter helfen? Das wäre nett. ^^
VlG, Anna
Hi Anna,
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 'WHERE 2 = '2'' at line 6
Das hat jetzt aber nichts mehr mit PHP zu tun, sondern vielmehr mit MySQL - der SQL-String den zu zusammenbastelst ist also von der Syntax her falsch. Schreibe nach dem Zusammensetzen des SQL-Strings einfach mal ein echo $sql;
in dein Script und schau dir den SQL-String an (bzw. poste ihn auch hier).
Ich vermute mal, da fehlt irgendwo eine schließende Klammer oder so etwas - jedenfalls scheint das WHERE da für MySQL unerwartet zu kommen.
MfG, Dennis.