# Bilder aus MySQL anzeigen lassen



## User Maik (12. März 2004)

Hallo 
Wie lasse ich mir Bilder die ich in der Datenbank gespeichert habe wieder anzeigen.
Datenbanddesign:

ID    image_type     image    image_size   image_name      image_time
1     image/pjpeg     Blob          2421               name.gif             2002.10.10

<?
    @mysql_connect("10.212.72.151","root");
    @mysql_select_db("mymarket");

    $query = "select image,image_type from image";
    $result = @mysql_query($query);
    $data = @mysql_result($result,0,"image");
    $type = @mysql_result($result,0,"image_type");
    header("Content-type: $type");
    echo $data;
?>

Was nicht geht, mit der Fehlermeldung: Kann die Headerinformation nicht öffnen.
Und die Ausgebe: ƒMzvçÔ0*c– Ñ¬ñgŒ und so weiter.


----------



## Tim C. (12. März 2004)

Mal eine Frage. Ist das für deine Anwendung wirklich nötig, dass du die Bilder binär in der Datenbank speicherst?
Wenn es nur darum geht, dass der User nicht den direkten Link zu Bildern bekommt, das kann man auch anders lösen und zwar indem man (auch mit einer DB) abhängig von einer ID aus der DB den Pfad liest und dieses Bild streamt.


----------



## User Maik (12. März 2004)

Richtg!
Man kann Bilder durch einen Pfad in der DB Speichern, das wohl durchaus leicher ist, aber ich habe Vorlagen bekommen Bilder Binär zu speichern, was auch nicht besonders schwierig ist. Das Problem ist wie lese ich die Bilder wieder aus der DB?


----------



## xloouch (12. März 2004)

such mal nach blob insert. 

sollte glaube ich einen eintrag geben von mir zu diesem thema...


----------



## User Maik (15. März 2004)

Noch keine Lösung!

Kann jedes Image aus der Datenbank MySQL durch den Browser aufrufen.
z.b.: http://image.php?iid=25

Das richtige Image wird angezeigt.

Hintegrund: 
Ich habe alle Image in die Datenbank hochgeladen.
Zu jeder Produktbeschreibung soll ein Image angefügt werden.


----------



## xloouch (15. März 2004)

was ist den das für ein link

damit kann ich nichts anfangen.. kann dir mal mein teil posten, sobald ich meinen server wieder hergerichtet habe...


----------



## User Maik (16. März 2004)

Hallo, bin etwas weiter gekommen.
 <?
        $conn = mysql_connect("XX","root") OR DIE (mysql_error());
        @mysql_select_db("mymarket", $conn) OR DIE (mysql_error());
        $sql = "SELECT * FROM image WHERE image_id="."<? pv($prod->image_id) ?>";
        $result = mysql_query($sql, $conn);
        if (mysql_num_rows ($result)>0) {
          $row = @mysql_fetch_array ($result);
          $image_type = $row["image_type"];
          $image = $row["image"];
          Header ("Content-type: $image_type");
          print $image;
        }
        ?>

Die <? pv($prod->image_id) ?> ID gibt den richtigen Wert aus der DB an.
Es kommt aber folgende Fehlermeldung.
Cannot add header information - headers already sent by (auf Zeile Header)


----------



## User Maik (16. März 2004)

Wie greift man auf Bilder zu die in MySQL binär gespeicher wurden.
<img src="../admin/upload_image/image.php?iid=<? pv($prod->image_id) ?>" width="40" height="40">

Die "<? pv($prod->image_id) ?>" kommt aus meiner  Tabelle Produkte.

 
Problem erledig.

Image.php=>
<?php
$conn = mysql_connect("localhost", "user") OR DIE (mysql_error());
@mysql_select_db ("mymarket", $conn) OR DIE (mysql_error());
$sql    = "SELECT * FROM image WHERE image_id=".$_GET["iid"];
$result = mysql_query ($sql, $conn);
if (mysql_num_rows ($result)>0) {
  $row = @mysql_fetch_array ($result);
  $image_type = $row["image_type"];
  $image = $row["image"];
  Header ("Content-type: $image_type");
  print $image;
}
?>


----------



## xloouch (16. März 2004)

gib mir 2 tage und ich werd dir meinen code posten... bin gerade in der schule und habe keine gelegenheit den code zu posten...


----------

