Zum Inhalt springen

Bilder aus MYSQL

Erstellt am 20. Mai 2003 · 4 Antworten · letzte Antwort am 4. Juni 2003

Tags: Frage

wersi77 ·

Vielleicht weiß es ja einer...
wie lese ich Bilder aus meiner MYSQL-Datenbank per PHP-Datei.
Ich bekomme immer nur den binären Code ausgegeben. Also ein Zahlen- und Buchstabenkuddelmuddel.

Hier mein Quellcode:

<html>
<head>
</head>
<?PHP
$verbindung = mysql_pconnect("xx","xx","xx");
mysql_select_db("personal", $verbindung);
$sql = "SELECT * from mitarbeiter order by name";
$ergebnis = mysql_query($sql, $verbindung);

while($row = mysql_fetch_object($ergebnis))
{
echo "<table width=100% border=1>";
echo "<tr>";
echo "<a name="$row->id">";
echo "<td width=10%><b>Name</b></td><td width=60%>$row->vorname $row->name<br></td>";
echo "</tr><tr>";
echo "<td><b>Bild</b></td><td>$row->bild<br></td>";
echo "</tr>";
echo "</table><br>";
}
mysql_free_result($ergebnis);
mysql_close($verbindung);
?>
</body>
</html>

Kann mir jemand den Befehl erklären? Bin aus anderen Foren nicht schlau geworden. Danke...

boonkerz ·

Hallo

Am besten du machst ein extra script z.b. bild.php

dort muß rein:

header("Content-type: Image/jpeg");
imagejpeg($bild);

dieses script bindest du über den img tag ein:

<img src="bild.php"> ein.

sollte gehen. 😃

MFG

wersi77 ·

Also das raff ich leider noch nicht so ganz. :-(

hab also bis jetzt ne PHP-Datei mit folgendem Inhalt:

<?PHP
header("Content-type: Image/jpeg");
imagejpeg($Bild);
?>

und meine PHP-Abfrage-Datei in welcher einfach nur der Name und das Foto aller Personen angezeigt werden sollen:

<html>
<?PHP
$verbindung = mysql_pconnect("xx","xx","xx");
mysql_select_db("Personal", $verbindung);
$sql = "SELECT * from mitarbeiter order by Name";
$ergebnis = mysql_query($sql, $verbindung);

while($row = mysql_fetch_object($ergebnis))
{
echo "<table width=100% border=1>";
echo "<tr>";
echo "<a name="$row->id">";
echo "<td width=10%><b>Name</b></td><td width=60%>$row->Vorname $row->Name<br></td>";
echo "<td><b>Bild</b></td><td>$row-><img src="bild.php"></td>";
echo "</tr>";
echo "</table><br>";
}
mysql_free_result($ergebnis);
mysql_close($verbindung);
?>
</body>
</html>

Das kann doch so nicht funktionieren?
Bitte um Hilfe für ganz Blöde... :o

tmallee ·

Hallo wersi77,

offenbar werden die Bilder in einem BLOB Feld als Binärdaten direkt gespeichert. Du musst also für die Ausgabe des Bildes den Header switchen, da die Informationen sonst als Textdaten angezeigt werden (=> Gewirr aus Zahlen und Buchstaben). Der Tipp von Boonkerz war richtig. Du findest das in einem ausführlichen Beispiel unter http://www.phpbuilder.com/columns/florian19991014.php3?page=3.

Noch ne Anmerkung: das direkte Speichern von Bilddaten in einer Datenbank ist meist nicht sinnvoll. Es gibt da ein paar (wenige) Infos unter http://www.dclp-faq.de/q/q-db-blob.html.

Hoffe, das hilft Dir weiter!

Gruß

Thomas