Bilder in MySQL DB speichern und ausgeben

Suat

Grünschnabel
Hallo,

ich möchte Bilder in einer DB speichern und wieder ausgeben lassen

Hier meine Fragen:

Wie muß der Variablentyp deklariert werden wenn ich den Link in der DB speichern will?

Bis jetzt habe ich das Bild selbst in der DB gespeichert und als Typ LongBLOB genommen
->
leider gibt er mir nicht die Bilder aus, sondern nur ein kleines Zeichen, als würde das Codec fehlen( wie z.B wenn man Flash nicht installiert hat und eine Flashanimation wiedergeben möchte)

Brauche dringend Hilfe weil ich schon seit Wochen an dem Problem hänge!

Danke im Voraus!

Grüße,

Suat
 
Hi

ein Tipp von mir, speichere die Bilder auf dem Server in ein Verzeichnis und den Pfad bzw. den Dateinamen der Bilder in die Tabellenspalte. Alles andere bläht die Datenbank ungemein auf. ...
 
Hi,

habe jetzt mal die Links in der DB gespeichert bekomme aber nicht die Bilder sondern dies ausgegeben:

Connected successfully: Database "bildersuche" selected!
Das Bild und der Name wurden selektiert!

Folgende Dateien sind in der Datenbank gespeichert:
Dateiname Bild

Connected successfully: Database "bildersuche" selected!
Das Bild und der Name wurden selektiert!

Folgende Dateien sind in der Datenbank gespeichert:
Dateiname Bild

Warning: Cannot modify header information - headers already sent by (output started at D:\Programme\xampp\htdocs\dbconnection2.php:3) in D:\Programme\xampp\htdocs\dbconnection2.php on line 32
hans\localhost\bilder\bild.jpg

PHP:
<?php
include "config.php";

$sql = "SELECT name, bild
      FROM suche ";
   $result = @mysql_query($sql);
   if (!$result)
   {
   	die('Datenbankfehler:  ' . mysql_error());
   }else{
   	echo 'Das Bild und der Name wurden selektiert!<br/>';
   }
?>

<html>
	<p>Folgende Dateien sind in der Datenbank gespeichert:</p>
	<table width="85%" border="0" cellpadding="0" cellspacing="0">
	 <tr>
	   <th align="left">Dateiname</th>
       <th align="left">Bild</th>
     </tr>
    </table>
</html>

<?php


if (mysql_num_rows($result) >0) {
   while ($f = mysql_fetch_array($result)) {
    header("Content-Type: image/jpeg");
    echo $f['0'];
	echo $f['1'];  
	}
}
?>

Bitte dringend um Hilfe!
 
Hi

der Fehler kommt daher, dass Du html aufrufst, bevor ein Header aufgerufen wird.

Die Sache mit dem Header kannst Du Dir in dem Falle sparen. Der Pfad zum Bild bzw. der Dateiname dient ja als Platzhalter. Um das Bild dann darstellen zu können, musst Du einen ganz simplen img-Tag setzen.

PHP:
$ausgabe = "<img src=\"pfad\".$f[1]."\"/>";

Edit: das letzte Anführungszeichen muss maskiert werden (\") werden. Der Forumcode setzt dies allerdings nicht um.
 
Zuletzt bearbeitet:
Zurück