Fehler in PHP-Skript

Alice

Erfahrenes Mitglied
Hallo. :)

Ich habe einen Fehler in einem PHP-Skript aber ich kriege es einfach nicht hin.

PHP:
<?php

$db_server = "localhost";
$db_name = "XXX";
$db_user = "XXX";
$db_passwort = "XXX";

$db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort);
      mysql_select_db($db_name,$db); 

$select = "select * from userfield";
$result = mysql_query($select,$db);

if($result){
echo "<table>";
while($row = mysql_fetch_array($result)){
echo "<tr><td>Profilfeld 1</td><td>:</td><td>".$row['field1']."</td></tr>";
echo "<tr><td>Profilfeld 2</td><td>:</td><td>".$row['field2']."</td></tr>";
echo "<tr><td>Profilfeld 3</td><td>:</td><td>".$row['field3']."</td></tr>";
echo "<tr><td>Profilfeld 4</td><td>:</td><td>".$row['field4']."</td></tr>";
echo "<tr><td>Profilfeld 5</td><td>:</td><td>".$row['field5']."</td></tr>";
echo "<tr><td>Profilfeld 5</td><td>:</td><td><img src="www.meine-seite.de/bilder/grafik-'.$row['field5'].'.png" alt="Grafik"></td></tr>";
echo "<br />";
}
echo "</table>";
}

?>

Als Fehler wird mir diese Zeile angezeigt:

PHP:
echo "<tr><td>Profilfeld 5</td><td>:</td><td><img src="www.meine-seite.de/bilder/grafik-'.$row['field5'].'.png" alt="Grafik"></td></tr>";

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in...

Könnt ihr vielleicht noch andere Fehler sehen?

Würde mich über ein bisschen Unterstützung sehr freuen. :)
 
Tausche es mit folgendem aus:
PHP:
echo "<tr><td>Profilfeld 5</td><td>:</td><td><img src=\"www.meine-seite.de/bilder/grafik-".$row['field5'].".png\" alt=\"Grafik\"></td></tr>";
Müsste funktionieren.
Es lag daran, dass du im String selber die gleichen Anführungsstriche benutzt hast wie zum Anfangen des Strings.

Man sieht sowas auch schön, wenn man einen Syntax-Highlighter hat, wie z.B. hier im Forum.
 
Hallo. :)

Also erst einmal vielen Dank.

Jetzt erscheint kein Fehler mehr aber leider auch kein Bild. Da steht nur "Grafik". Ich habe mal das alt-Attribute gelöscht und jetzt ist da ein kaputtes Bild Symbol.

Kannst du mir da auch helfen?
 
Ich habe mir das mal eben mit Firebug angeschaut.

Die URL zum Bild stimmt. Denn wenn ich die URL kopiere und im Browser eingebe, erscheint das Bild sofort. Wenn ich aber in Firebug mit der Maus auf die URL halte, versucht er die Grafik zu laden aber es wird nichts geladen.

Der Source-Code ist sehr kurz (Siehe 1. Beitrag) aber der Quelltext ist Gigantisch. Daher verzichte ich erst einmal drauf es hier her zu kopieren.
Durch die DB-Abfrage werden 500 User-Profile geladen aber die Grafik sollte nur bei ca. 10 Usern angezeigt werden, da nur diese das Profilfeld auch ausgefüllt haben.

Edit:

So geht es.

PHP:
echo "<tr><td>Profilfeld 5</td><td>:</td><td><img src=\"/bilder/grafik-".$row['field5'].".png\" alt=\"Grafik\"></td></tr>";

Ich habe nur das "www.meine-seite.de" gelöscht.

Passt zwar nicht ganz zum Thread aber ich Frage trotzdem einfach mal.

Gibt es eine Möglichkeit einen DB-Eintrag nur auszugeben wenn auch etwas in dieser Tabelle (oder wie das heisst) was steht?
 
Zuletzt bearbeitet:
Genau das meine ich. :)

Kannst du mir evtl. kurz erklären warum die Grafiken jetzt angezeigt werden? Habe ja nur das "www.meine-seite.de" gelöscht.
 
Natürlich nicht. :D

Hmmm... mit "http://www.meine-seite.de" geht es.

Wenn ich jetzt noch wüsste wie ich DB-Ergebnisse ohne Eintrag deaktivieren kann, wäre ich sehr glücklich. :)

Edit:

Ich habe es nun so gelöst:

PHP:
if (empty($row['field16'])) 
{
}
else
{
echo "<tr><td>Profilfeld 5</td><td>:</td><td><img src=\"/bilder/grafik-".$row['field5'].".png\"></td></tr>";
}

Ist das so ok?
 
Zuletzt bearbeitet:
Funktioniert es, dann schon.
Ich würde an meiner Stelle ein Bild einblenden, auf dem Steht "No picture" oder ähnliches. Ist aber deine Sache ;)

Edit: Deine Lösung ist aber nicht auf der SQL-Seite. Ich dachte du wolltest das so machen, anstatt auf der PHP-Seite.
 
Zuletzt bearbeitet:
Zurück