danielnoll
Goto Top

PN SYSTEM

Hallo, ich habe ein kleines Problem.

Ich bin grade dabei ein kleines pn system zu programmieren.
Nur er liest mir das nicht wirklich aus, er liest mir nur den ersten eintrag aus der table raus.

Hier der Php code:

<?php ini_set('error_reporting', E_ALL);  
echo "<h1>Posteingang</h1>";  
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">  
 <tr>
  <td width="235" align="left" valign="top" class="small">Nachricht von </td>  
  <td width="140" align="left" valign="top" class="small">Empfangen am/um</td>  
  <td width="315" align="left" valign="top" class="small">Betreff</td>  
  <td width="110" align="center" valign="top" class="small">Option</td>  
 </tr>
 <tr>
 <td colspan="4"> </td>  
 </tr>
</table>';  
   $id = $_SESSION['user_id'];  
   $SQLstring = "SELECT * FROM nachricht WHERE an = '".$id."';";  
   $ergebnis = mysql_query($SQLstring,$conection);
   while($row1=mysql_fetch_row($ergebnis))
   {
   $uid = $row1['2'];  

   $SQLstring = "SELECT * FROM benutzer WHERE ID = '".$uid."';";  
   $ergebnis = mysql_query($SQLstring,$conection);
    $row2=mysql_fetch_row($ergebnis);
    $userbild = $row2['11'];  
  $username = $row2['1'];  

    echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">  
 <tr>
  <td width="55" height="50" align="left" valign="top"><img src="../images/userbild/'.$row2['11'].'" width="45" height="45"></td>  
  <td width="180" align="left" valign="top"><a href=../profil/?id='.$row1['1'].'>'.$row2['1'].'</a></td>  
  <td width="140" align="left" valign="top"><span class="grau">'.date("d.m.y / H:i:s", $row1['5']).' Uhr</span></td>  
  <td width="315" align="left" valign="top"><strong><a href=../nachrichten/?page=lesen&id='.$row1['0'].'>'.$row1['3'].'</a></strong></td>  
  <td width="110" align="left" valign="top" class="small"><a href=../nachrichten/?page=loeschen&id='.$row1['0'].'>Löschen</a> | <a href=../nachrichten/?page=antwort&id='.$row1['0'].'>Antworten</a></td>  
 </tr>
</table>';  
}
?>
mysql talbe:

CREATE TABLE `nachricht` (
  `ID` int(11) NOT NULL auto_increment,
  `von` int(20) default NULL,
  `an` int(20) default NULL,
  `betreff` varchar(30) default NULL,
  `nachricht` text,
  `datum` int(20) default NULL,
  `neu` int(3) default NULL,
  PRIMARY KEY  (`ID`)
)

es sind 4 einträge in der table, die auch auf den user zugestimmt sind... sprich mit der "an" id "1". würde mich freuen, wenn mir jemand helfen kann. danke!

Content-Key: 93811

Url: https://administrator.de/contentid/93811

Printed on: April 25, 2024 at 18:04 o'clock

Member: EvilMoe
EvilMoe Aug 06, 2008 at 16:30:05 (UTC)
Goto Top
Weil dein 2. Query nicht in eine schleife läuft liefert er als Ergebnis nur das erste. Wie beim ersten Query einfach eine "while" Schleife.
Member: DanielNoll
DanielNoll Aug 06, 2008 at 16:32:52 (UTC)
Goto Top
ja wie kann ich das ändern? da ich ja aus der ersten table, die nachricht an sich raushole (ID/an/von/betreff/datum) und aus der zeiten table, das userbild und den name..
Member: EvilMoe
EvilMoe Aug 06, 2008 at 16:39:39 (UTC)
Goto Top
Fasse die beiden Querys einfach zusammen. Ich rate dir hier dich nochmal über eine SQL-Injection zu informieren.

Ungetestet:

SELECT * FROM nachricht,benutzer WHERE nachricht.an = '$id' AND benutzer.ID = 'nachricht.UID';  
// nachricht.UID ist $row1['2'], kann auch anders heißen! 

Dieser Query sollte dir alle gewünschten Ergebnisse liefern wenn du diesen in einer Schleifen laufen lässt.