YourWBB


yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Problem mit einer selbstausgedachten Art eines Nachrichren-Systems... » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 3.294 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Zum Ende der Seite springen Problem mit einer selbstausgedachten Art eines Nachrichren-Systems...
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
tom-s tom-s ist männlich
Mitglied


Dabei seit: 26.01.08
Beiträge: 42
Herkunft: Berlin, Deutschland

 Problem mit einer selbstausgedachten Art eines Nachrichren-Systems... Antworten Zitieren Editieren Melden       UP

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.

__________________
Mal ganz im geheimen... I love proggen!!! smile

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von tom-s: 13.07.08 21:07.

13.07.08 20:21 tom-s ist offline E-Mail Finden Als Freund hinzufügen
derkleene derkleene ist männlich
Alternativ Mitglied


Dabei seit: 28.08.06
Beiträge: 181
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi
Herkunft: Niedersachsen
Forenversion: Lite 1.0

Antworten Zitieren Editieren Melden       UP

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())) {

__________________
---
Es grüßt
DerKleene
NeoTower
13.07.08 22:59 derkleene ist offline E-Mail WWW Finden Als Freund hinzufügen
KriX KriX ist männlich
Mitglied


images/avatars/avatar-963.jpg

Dabei seit: 19.01.04
Beiträge: 253
Herkunft: Plattling
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

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

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von KriX: 27.07.08 00:46.

27.07.08 00:45 KriX ist offline E-Mail Finden Als Freund hinzufügen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Problem mit einer selbstausgedachten Art eines Nachrichren-Systems...