Linkscript / MySQL-Ausgabe

Bulldozer82

Grünschnabel
Ich bastel grad wieder an meinem Link-Script :

PHP:
	<?php
	$rub = "SELECT 
                Name,
                Beschreibung,
				URL1,
                URL2,
                URL3
                
				FROM
                Links
				
				    ";
    $result = mysql_query($rub) OR die(mysql_error());
    
	if(mysql_num_rows($result)) {
        while($row = mysql_fetch_assoc($result)) {
           	echo $row['Name'];
		          echo $row['Beschreibung'];
                echo "<a href=\"".$row['URL1']."\">Link 1</a>";
                echo "<a href=\"".$row['URL2']."\">Link 2</a>";
                echo "<a href=\"".$row['URL3']."\">Link 3</a>"
						      }
    } else {
        echo"<p>Keine Daten vorhanden</p>\n";
    }
	?>

Ausgabe :
Name
Beschreibung
Link1 Link2 Link3


Das funktioniert ganz gut. Nun ist es aber so das manchmal nur ein oder zwei URL in der Tabelle stehen. Dann wird z.B. "Link 3" angezeigt aber es gibt diesen Link gar nicht. Wie kann ich es erreichen das nur die Links angezeigt werden die auch existieren?

Ich hoffe ihr wisst was ich meine...

Kann mir jemand helfen?
 
Indem du checkst, ob der Wert, den du aus der DB (z.B. Link 3) geholt hast, auch existiert. Da gibts verschiedene Methoden das zu checken.

Kannst entweder die strlen() checken und den link nur dann anzeigen, wenn die strlen() > 0 ist ... Ne andere Möglichkeit wäre empty() ..

Grüsse,
mb
 
PHP:
if(!empty($row['URL1'])) echo "<a href=\"".$row['URL1']."\">Link 1</a>";
if(!empty($row['URL2'])) echo "<a href=\"".$row['URL2']."\">Link 2</a>";
if(!empty($row['URL3'])) echo "<a href=\"".$row['URL3']."\">Link 3</a>";

Etwas unsauber, aber eine funktionierende Lösung.
 
Zuletzt bearbeitet:
Unsauber weil es schlecht leserlich ist, wenn es im Code eingebettet ist. Schöner wäre es mit Zeilenumbrüchen und den dazugehörenden Klammern, also:

PHP:
if(!empty($var))
{
  print $var;
}
 
PHP:
	<?php
	$rub = "SELECT 
                Name,
                Beschreibung,
				URL1,
                URL2,
                URL3
                
				FROM
                Links
				
				    ";
    $result = mysql_query($rub) OR die(mysql_error());
    
	if(mysql_num_rows($result)) {
        while($row = mysql_fetch_assoc($result)) {
           	echo $row['Name'];
		          echo $row['Beschreibung'];
               if(!empty($row['URL1']) echo "<a href=\"".$row['URL1']."\">Link 1</a>";
               if(!empty($row['URL2']) echo "<a href=\"".$row['URL2']."\">Link 2</a>";
               if(!empty($row['URL3']) echo "<a href=\"".$row['URL3']."\">Link 3</a>"; 
						      }
    } else {
        echo"<p>Keine Daten vorhanden</p>\n";
    }
	?>

Habe es jetzt so probiert. Aber ich bekomme folgende Fehlermeldung :

Parse error: syntax error, unexpected T_ECHO
 
Zurück