Bilder aus DB(mysql) auslesen
Christoph
- php
Hallo,
weiß einer von euch, wie ich mehrere Bilder, die ich aus einer DB auslese anzeigen lasse? Bei mir wird immer nur ein Bild angezeigt.
(mein Quellcode:
@mysql_connect("localhost","","");
@mysql_select_db("bilder");
$query = "select Bild1_data,Bild1_typ from bilder where
BildID=1";
$result = @mysql_query($query);
$data = @mysql_result($result,0,"Bild1_data");
$type = @mysql_result($result,0,"Bild1_typ");
header("Content-type: $type");
$query = "select Bild1_data,Bild1_typ from bilder where
BildID=2";
$result = @mysql_query($query);
$data2 = @mysql_result($result,0,"Bild1_data");
$type2 = @mysql_result($result,0,"Bild1_typ");
echo $data;
echo '<br>';
header("Content-type: $type2");
echo $data2;
)
Gruß Christoph
Hallo,
$query = "select Bild1_data,Bild1_typ from bilder where
BildID=1";
Ist ja auch klar, in Deiner where-Klausel legst Du Dich ja auch mit der ID auf explizit ein Bild fest. Ich denke mal das BildID ein Autoincrement-Wert ist der einmalig in dieser Tabelle ist?
$result = @mysql_query($query);
$data = @mysql_result($result,0,"Bild1_data");
$type = @mysql_result($result,0,"Bild1_typ");
header("Content-type: $type");$query = "select Bild1_data,Bild1_typ from bilder where
BildID=2";
$result = @mysql_query($query);
$data2 = @mysql_result($result,0,"Bild1_data");
$type2 = @mysql_result($result,0,"Bild1_typ");
Du willst aber nicht ersthaft für jedes Bild eine extra DB-Anfrage senden? Das macht man mit einem Statement und einer Schleife. Schau Dir das mal in der MySQL-Doku http://www.mysql.com/doc/de/Functions.html und PHP-Doku http://de.php.net/manual/de/function.mysql-fetch-array.php, http://de.php.net/manual/de/control-structures.foreach.php etwas genauer an...
Gruss AndreD
Hallo Christoph,
ich habe den Eindruck, dass Ihr da beide auf dem falschen Dampfer seid. Die Bilder sollen doch im Browser angezeigt werden, oder?
Dann muss der Browser für jedes Bild eine eigene Instanz seines Anzeigeprogrammes starten. Das macht er durch den HTML-Befehl
<img src="...">
oder imdem er auf eine Anforderung unbekannter Antwort den Content-Type: image/jpg gesendet bekommt.
Er könnte auch so schlau sein, dass er automatisch erkennt, das er gerade den Octet-Stream eines Bildes gesendet bekommt und dies dann anzeigen. Er kann aber pro Request nur EIN Bild verkraften.
Da muss man dann wohl zwangsweise ein SQL-Statement pro Bild spendieren, wenn man nicht auf Tricks, wie temporäre Zwischenspeicherung in der Session oder in "selbstlöschenden" Zwischendateien zurückgreifen will.
Übrigens kostet ein BLOB-Zugriff ungefähr 10x soviel wie ein Zugriff auf ein VarChar-Feld. Wenn Du Deine bilder also nicht in 255 Byte unterbringen kannst *gg* solltest Du die Bilder in Low-Level-Dateien und deren Namen in der DB ablegen.
Bis denne
Chris