Problem mit einer selbstausgedachten Art eines Nachrichren-Systems...

tom-s
Hallo,

wie im Titel schon gesagt, habe ich mir ein kleines Nachrichten-System für den internen Bereich meiner Website ausgedacht.
Sollte man vom System einen neue Nachricht empfangen,
wird diese im oberen Bereich der nächsten aufgerufenden Seite angezeigt.
Ich nenne das SpeedMessagesSystem (kurz SM).
Das ganze benutzt eine MySQL-Tabelle namens "sm".
Dort gibt es die Felder "id", "message", "to", "used".
ID ist irrelevant,
MESSAGE ist dir Nachricht,
TO ist der Nutzer, der die Nachricht empfangen soll und
USED wird benutzt, um abzufragen, ob die Nachricht bereits gelesen wurde.
Wenn eine Nachricht angezeigt werden soll, ist links von der Nachricht immer ein kleines X, mit dem man den USED-Wert auf 1 setzen kann,
so dass die Nachricht nicht wieder angezeigt wird,
weil die Nachrichten ja immer dann angezeigt werden,
wenn der USED-Wert auf 0 ist...

Nun gut,
das Problem ist, dass er keinerlei Nachrichten anzeigt...

Er gibt immer den folgenden PHP-Parse-Error aus:

code:
1:
2:
3:
Parse error: syntax error, unexpected '{' in /var/www/web116/html/inc/main2_3.php on line 9


Okay, hier ist der betroffene Ausschnitt um diese Line 9:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
<?php
mysql_connect("localhost", "web116", "[myPW]");
mysql_select_db("usr_web116_4");

$sql = "SELECT * FROM sm WHERE to = '" . $_SESSION['username'] . "'";
$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result) or die(mysql_error()) {
	if ($row['used'] == "0") {
?>
<div id="note" style="padding: 0px; padding-left: 5px;">
<a href="http://sm.int.o-c-o.de/used?id=<?php echo $row['id']; ?>&user=<?php echo $_SESSION['username']; ?>&pw=<?php echo $_SESSION['passwort']; ?>&url=<?php echo $remote_host . $full_path; ?>">
<img src="http://bin.img.o-c-o.de/closeX" border="0">
</a>
&nbsp;
<?php echo $row['message']; ?>
</div>
<?php
	}
}
?>


Ich hoffe jemand kann mir trotz der langen Erklärung helfen,
Tom S.

Edit:

Ich muss noch was ergänzen...

Der Fehler ist hauptsächlich der folgende SQL-Fehler:

code:
1:
2:
3:
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 'to = 'Xedixo'' at line 1


Wobei Xedixo mein Username auf der Page ist...

Tom S.
derkleene
while ($row = mysql_fetch_assoc($result) or die(mysql_error()) {

da fehlt eine klammer:
sollte so sein:

while ($row = mysql_fetch_assoc($result) or die(mysql_error())) {
KriX
Dein Fehler in der MySQL Abfrage ist folgender:
Die Spalte "to" welche du in der Where-Abfrage benutzt wird von MySQL als eine Art System-Befehl behandelt, also so wie wenn du abfragst "SELECT * FROM sm WHERE WHERE = ...".

Du kannst das ganze umgehen, indem du die Spalte "to" in Apostrohen setzt.
Also "SELECT * FROM sm WHERE `to` = '".$_SESSION['username']."'"

Eine Frage noch:
Warum benutzt du bei diesem System als Referenz zum Empfänger hin den Benutzernamen?
Würde dir hier dazu raten, dass du den Empfänger mit der Userid speicherst, da ich schlechte Erfahrungen hierbei gemacht habe, sobald der Benutzer Umlaute im Namen hat.

Edit:
Jetz erst gesehn dass der Beitrag doch scho etwas älter ist...
Keine Ahnung ob das Problem noch besteht unglücklich