PHP soll MySQL auslesen -> Fehler

bunitz

Grünschnabel
Hallo,

ich habe eine Datenbank mit diversen Einträgen
Die Tabelle heisst: SFL_NAME
Variablen: ID, Name, Link1, Link2, Link3

Code:
 $result = mysql_query('SELECT * FROM sfl_name WHERE id="'.$id.'" AND Link1!=""'); 
if(mysql_num_rows($result)>0) 
echo '<a href="$Link1"><img src="Link1.png" alt=" · link zu $name · "></a><br>'; 
else 
echo ''; 
$result = mysql_query('SELECT * FROM sfl_name WHERE id="'.$id.'" AND Link2!=""'); 
if(mysql_num_rows($result)>0) 
echo '<a href="$Link2"><img src="Link2.png" alt=" · link zu $name · "></a><br>'; 
else 
echo ''; 
$result = mysql_query('SELECT * FROM sfl_name WHERE id="'.$id.'" AND Link3!=""'); 
if(mysql_num_rows($result)>0) 
echo '<a href="$Link3"><img src="Link3.png" alt=" · link zu $name · "></a>'; 
else 
echo '';

Das klappt auch sehr gut, ist ein Eintrag vorhanden dann erscheint auch das entsprechende Bild.
Jetzt aber das was ich einfach nicht hinbekomme!

In dem Echobefehl soll der Link erscheinen, welcher und der Variable eingetragen ist sowie der entsprechende Name. Bei jedem Versuch habe ich eine andere Fehlermeldung.

Kann mir jemand auf die Sprünge helfen und einen Anfänger diesen sicherlich simplen Befehl posten?!
 
Versuch mal anstelle des * die entsprechende Spalte mit dem Link auszulesen, ...
Also so (ist aber nicht getestet):
PHP:
$result = mysql_query('SELECT Link1, Name FROM sfl_name WHERE id="'.$id.'" AND Link1!=""'); 
if(mysql_num_rows($result)>0) 
  echo '<a href="$Link1"><img src="Link1.png" alt=" · link zu $Name · "></a><br>'; 
else 
  echo ''; 
$result = mysql_query('SELECT Link2, Name FROM sfl_name WHERE id="'.$id.'" AND Link2!=""'); 
if(mysql_num_rows($result)>0) 
  echo '<a href="$Link2"><img src="Link2.png" alt=" · link zu $Name · "></a><br>'; 
else 
  echo ''; 
$result = mysql_query('SELECT Link3, Name FROM sfl_name WHERE id="'.$id.'" AND Link3!=""'); 
if(mysql_num_rows($result)>0) 
  echo '<a href="$Link3"><img src="Link3.png" alt=" · link zu $Name · "></a>'; 
else 
  echo '';

redlama
 
Ich glaube du hast das was wichtiges vergessen ...

PHP:
$result = mysql_query('SELECT Link1, Name FROM sfl_name WHERE id="'.$id.'" AND Link1!=""'); 
$row = mysql_fetch_array($result);
//.... Var ist dann $row["Link1"]

mfg
 
Erstmal danke für die Vorschläge, werde ich testen ob das dann auch so funktioniert
Melde mich wieder, dann auch mit der Fehlermeldung :-)

So da bin ich wieder, also ich habe die Variablen direkt benannt und den * entfernt
Auch habe ich die Zeile zusätzlich eingefügt:

Code:
$result = mysql_query('SELECT name, Link1 FROM sfl_name WHERE id="'.$id.'" AND Link1!=""');
   $row = mysql_fetch_array($result);
   if(mysql_num_rows($result)>0) 
   echo '<a href="$row["$Link1"]"><img src="Link1.png" alt=" · link zu $name · "></a><br>'; 
   else 
   echo '';

Das Script funktioniert aber die Links werden nicht ausgegeben, d.h. echo '<a href="$row["$Link1"]"> ruft als Link '$Link1' auf, den es als Webseite nicht gibt.
Die eigentlichen Einträge der MySQL Datenbank werden ignoriert.
 
Zuletzt bearbeitet:
Ich würd überhaupt ein bisschen genauer mit " und ' arbeiten.

Code:
echo "<a href=".$row['$Link1']."><img src=\"Link1.png\" alt=" · link zu $name · "></a><br>";

and so on...
 
Leute... Ihr habt recht... die ' und " überarbeitet - dazu ein paar \ und eche gegen print getauscht... fertig ist das funktionierende Script...

Ich danke allen für die Hilfe

das fertige sieht so aus:
Code:
	$result = mysql_query('SELECT name, Link1 FROM sfl_name WHERE id="'.$id.'" AND Link1!=""');
	$row = mysql_fetch_array($result);
	if(mysql_num_rows($result)>0)  
	print "<a href=\"$row[Link1]\"><img src=\"Link1.png\" alt=\"link zu ".$name."\"></a><br>\n";
 
Schön, dass es funktioniert, ...
Aber warum hast Du denn die echo gegen print ausgetauscht?
Das sind doch beides Sprach-Konstrukte, die einen oder mehrere strings ausgeben können. Wo siehst Du denn da den Unterschied?

redlama
 
unterschiede sehe ich keine, bin eh ein laie und freue mich nur über das ergebnis :-)
ein freund sagte, nimm PRINT also printe ich ... aber mit den sonderzeichen habt Ihr geholfen
 
Zurück