MySQL leere Zeile

dsNDesign

Erfahrenes Mitglied
Hi,
Ich komme gerade einfach nicht weiter.
Habe folgenden Code:
PHP:
 if (!isset($_GET['page'])) {
    $sql = "SELECT * FROM `gaestebuch` ORDER BY `id` DESC LIMIT 0,".$maxproseite.";";  
} else {
    $abeintrag = $_GET['page'] * $maxproseite - $maxproseite;
    $sql = "SELECT * FROM `gaestebuch` ORDER BY `id` DESC LIMIT ".$abeintrag.",".$maxproseite.";";
}
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
    echo '
  <br />
  <table border="0"><colgroup><col width="237" /><col width="250" /></colgroup>
  <tr>
    <td valign="top"><b>Eintrag von '.$row['name'].'</b></td>
    <td valign="top"><font color="#5c5c5c" style="font-style:italic">geschrieben am '.$row['datum'].' um '.$row['uhr'].' Uhr</font></td>
  </tr>
</table>
  <table border="0"><colgroup><col width="80" /><col width="407" /></colgroup>
  <tr>
    <td valign="top"><a href="mailto:'.$row['email'].'"><img src="gif/email.png" alt="mail"/></a>&nbsp;&nbsp;<a href="'.$row['url'].'" target="_blank"><img src="gif/hp.png" alt="hp" /></a>&nbsp;&nbsp;<a href="http://www.icq.com/people/about_me.php?uin='.$row['icq'].'" target="_blank"><img src="gif/icq.png" alt="icq" /></a></td>
    <td valign="top">'.$row[textnachricht]=str_replace("\n","<br />",$row[textnachricht]).'</td>
  </tr>
</table>
<br /><div align="center"><img src="image/grenze.png" alt="gre"/></div>';
    }

Es funktioniert auch alles.

Ich habe ja die einzelnen Bilder für Homepage, Email und ICQ. Diese werden ja mit Daten aus der Datenbank verlinkt.
Ich möchte jetzt, dass diese Bilder nur angezeigt werden, wenn in der Datenbank in dieser Zeile auch was steht.
Also wenn in der Zeile icq nichts steht, soll das Icon nicht angezeigt, aber wenn in email was steht, soll das eMail Icon trotzdem ganz normal angezeigt werden.
Es soll einfach immer das ausgeblendet werden, was in der Datenbank keinen Wert hat.

Wie mache ich das? Ich weiß, dass es über if (empty) geht, bekomm es aber in diesem Fall nicht hin.

Grüße
 
Trenn den großen echo Befehl auf oder beende noch besser hinter dem while den PHP Teil. Dann wird vor allem die Syntax Darstellung im Editor viel klarer.
Da wo nun das Mail oder ICQ Icon stehen soll, setzt du dann die Abfrage:
PHP:
<?php
if (!empty ($row['email']))
    echo '<a href="mailto:'.$row['email'].'"><img src="gif/email.png" alt="mail"/></a>&nbsp;&nbsp;';
?>
Die nbsp kommen mit rein, damit bei einem fehlenden Element keine zu große Lücke in der Anzeige entsteht.
 
Habs jetzt nach langem rumprobieren hinbekommen.
Hier mein Ergebnis:
PHP:
 if (!isset($_GET['page'])) {
    $sql = "SELECT * FROM `gaestebuch` ORDER BY `id` DESC LIMIT 0,".$maxproseite.";";  
} else {
    $abeintrag = $_GET['page'] * $maxproseite - $maxproseite;
    $sql = "SELECT * FROM `gaestebuch` ORDER BY `id` DESC LIMIT ".$abeintrag.",".$maxproseite.";";
}
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
    echo '
  <br />
  <table border="0"><colgroup><col width="237" /><col width="250" /></colgroup>
  <tr>
    <td valign="top"><b>Eintrag von '.$row['name'].'</b></td>
    <td valign="top"><font color="#5c5c5c" style="font-style:italic">geschrieben am '.$row['datum'].' um '.$row['uhr'].' Uhr</font></td>
  </tr>
</table>';
	echo '
	<table border="0"><colgroup><col width="100" /><col width="387" /></colgroup>
  <tr>
  <td valign="top">';
        if (!empty ($row['email'])) {
            echo '
       <a href="mailto:'.$row['email'].'"><img src="gif/email.png" alt="mail"/></a>&nbsp;&nbsp;';}
		if (!empty ($row['url'])) {
            echo '
       <a href="'.$row['url'].'" target="_blank"><img src="gif/hp.png" alt="hp" /></a>&nbsp;&nbsp;';}
		if (!empty ($row['icq'])) {
            echo '
       <a href="http://www.icq.com/people/about_me.php?uin='.$row['icq'].'" target="_blank"><img src="gif/icq.png" alt="icq" /></a>';}
	echo '</td>
  <td valign="top">'.$row[textnachricht]=str_replace("\n","<br />",$row[textnachricht]).'</td>
  </tr>
</table>
<br /><div align="center"><img src="image/grenze.png" alt="gre"/></div>';
    }

Danke für deine Hilfe

Grüße
 
Zurück