• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Nur 1 Zeile wird ausgelesen

alogheo

Mitglied
[GELÖST] Nur 1 Zeile wird ausgelesen

Ich habe eine Tabelle msgs, in der gesendete Nachrichten gespeichert werden.
Jetzt habe ich eine Seite, von der aus die empfangenen Nachrichten ausgelesen werden können. Das funktioniert soweit, aber es wird nur die erste Nachricht angezeigt.

Hier ist der Code, mit dem die Daten ausgelesen werden:

PHP:
	  $query = "SELECT * FROM `msgs` WHERE `to` = '".$_SESSION["id"]."'";
	  $result = mysql_query($query);
	  
      $i=0;

	  while($row = mysql_fetch_object($result))
	  {
	    $query = "SELECT `surname`, `firstname` FROM `user` WHERE `id` = '".$row->from."'";
		$result = mysql_query($query);
		
		if($user = mysql_fetch_object($result))
		{
	      echo '<div class="msg '.(!$i%2?'light':'dark').'" onclick="showMsg('.$row->id.')"><span class="date">'.date("d.m.Y",$row->date).'</span><span class="time">'.date("H:i",$row->date).'</span><span class="from">'.$user->firstname.' '.$user->surname.'</span><span class="subject">'.$row->subject.'</span></div>';
          $i++;
		}
	  }

Warum wird jetzt aber nur 1 Zeile ausgelesen??


edit: gelöst!

Habe hier:
PHP:
	    $query = "SELECT `surname`, `firstname` FROM `user` WHERE `id` = '".$row->from."'";
		$result = mysql_query($query);
$result:
PHP:
	  $query = "SELECT * FROM `msgs` WHERE `to` = '".$_SESSION["id"]."'";
	  $result = mysql_query($query);
überschrieben, sodass hier
PHP:
while($row = mysql_fetch_object($result))
die falsche Abfrage verwendet wurde.
 
Zuletzt bearbeitet:
Werbung:
Wie wäre es mit einem JOIN der beiden Tabellen, so dass
a) der Code einfacher wird
b) leichter erweitert werden kann
c) nur eine und somit schnellere Abfrage erzeugt wird?
 
Zurück
Oben