tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
936
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    maga147 maga147 ist offline Mitglied Brokat
    Registriert seit
    Mar 2005
    Beiträge
    280
    Hi,

    sorry für die wahrscheinlich scho tausend mal gefragte Frage...
    Hab aber leider nix gefunden:

    Ich habe in einer MySQL Datenbank verschiedene Bilder als BLOB Einträge gespeichert... Ja ich weis es lahmt die Datenbank usw... aber ich möchte es trotzdem machen

    Wie kann ich jetzt über eine Abfrage machen, dass es ein Bild ausgibt

    Sorry, aber ich hab bisher nur Texte ausgeben, meistens über

    PHP-Code:
    '.$ausgabe['test'].' '; 
    wie kann ich jetzt das Bild "raushohlen"?

    Danke
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Vor dem Ausgeben des „Grafik-Rohinhalts“ musst du dem User Agent vorher mitteilen, um welchen Inhalt es sich dabei handelt, damit er sie entsprechend interpretieren kann. Dazu sendest du einfach ein HTTP-Header-Feld „Content-Type“ mithilfe der header()-Funktion mit Angabe des entsprechenden Media-Typen.
     
    Markus Wulftange

  3. #3
    shockshell shockshell ist offline Mitglied Brokat
    Registriert seit
    Jun 2005
    Ort
    Buxtehude (Niedersachsen)
    Beiträge
    256
    Dafür gibt es zwei Möglichkeiten die mir spontan einfallen.
    Die erste ist, Du schreibst den Inhalt in eine Datei und gibst diese dann als bild aus.
    Z.B.
    $fp=fopen("bild.gif",'w');
    fwrite($fp,$blobfeld);
    flclose($fp);
    <img src="bild.gif">

    , oder zweitens Du machst das ganze in einem neuen Skript und gibst dieses dann als img src="skript.php?id=1" an.

    Im Skript schreibst du dann.

    <?
    header('Content-Type: image/gif');
    Hier must Du dein Blobfeld aus der Datenbank auslesen
    echo $blobfeld;
    ?>

    Marcus.
     
    Nichts hält so lange wie ein Provisorium....

  4. #4
    maga147 maga147 ist offline Mitglied Brokat
    Registriert seit
    Mar 2005
    Beiträge
    280
    danke für die Antwort,

    muss ich die dann ganz oben auf die Ausgabe Seite packen, also praktisch in den Head

    Könntest du mir ganz kurz ein Beispiel komplett Coden, wie es da stehen müsste Es handelt sich um .JPG dateien
     

  5. #5
    maga147 maga147 ist offline Mitglied Brokat
    Registriert seit
    Mar 2005
    Beiträge
    280
    hmm... hab das mit dem Content Typ eingebaut, aber irgendwie zeigt er mir jetzt immer den Fehler
    Code :
    1
    
    Die Grafik "http://www.....de/gallery.php?picid=1" kann nicht angezeigt werden, weil sie Fehler enthält.

    Ich poste mal eben meinen Code mit dem ich alles ausführ

    PHP-Code:
    <?php 
    header
    ('Content-Type: image/jpeg');
    $host "localhost";
    $user "";
    $password "";
    $dbname "";
    $tabelle ="gallery";

    $dbverbindung mysql_connect ($host$user$password);
    $dbanfrage "SELECT * from $tabelle where picid='$picid'";
    $result mysql_db_query ($dbname$dbanfrage$dbverbindung);
    echo
    '<table border="1" style="border-collapse: collapse">';
    while (
    $ausgabe mysql_fetch_array ($result))
    {

    echo 
    $ausgabe["pic"];

    }

    echo
    '</TABLE>';

    mysql_close ($dbverbindung);


    ?>
     

  6. #6
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Nein, dass ist nicht möglich. Du müsstest jede Grafik einzeln abfragen, wie es shockshell in seinem letzten Beitrag beschrieb.
     
    Markus Wulftange

  7. #7
    maga147 maga147 ist offline Mitglied Brokat
    Registriert seit
    Mar 2005
    Beiträge
    280
    Ja, das möchte ich auch...

    Soll mal so eine Gallery zum Durchklicken werden... bin grad in der Anfangsphase Schau dir doch bitte mal die 2 Beiträge von mir weiter oben an... wäre dir dankbar wenn du den Fehler finden kannst

    In der Datenbank gibt es die Felder "picid" und "pic" wo das Blob drinnen ist.
     

  8. #8
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Der Fehler in deinem Quellcode liegt darin, dass der Browser nach Angabe des Media-Typen versucht, den gesamten gesendeten Inhalt (auch die HTML-Tags) als eine JPEG-Grafik zu interpretieren, was natürlich völliger Quatsch ist.
    Daher müsstest du jeder Grafik einzeln anfordern, aus der Datenbank abfragen und an den UA senden. Shockshell hat es in seinem letzten Beitrag beschrieben, wie dies zu lösen ist.
     
    Markus Wulftange

  9. #9
    maga147 maga147 ist offline Mitglied Brokat
    Registriert seit
    Mar 2005
    Beiträge
    280
    *schäm*

    hab den fehler gefunden! Lag an mir... der Code funktioniert.... Hab die Falsche ID übergeben!

    SORRY... aber danke, es klappt alles!
     

  10. #10
    maga147 maga147 ist offline Mitglied Brokat
    Registriert seit
    Mar 2005
    Beiträge
    280
    jetzt werde ich verrückt....

    Das Skript hat funktioniert, jetzt habe ich einige Zeit nichts mehr gemacht, und jetzt funktioniert es nicht mehr!?

    Ich habe die Bilder ganz normal al BLOB in der Datenbank gespeichert und will sie über folgendes Skript per gallery.php?picid=1 abrufen:

    PHP-Code:
    <?php 
    header
    ('Content-Type: image/jpeg');
    $host "localhost";
    [..]
    $tabelle ="gallery";

    $dbverbindung mysql_connect ($host$user$password);
    $dbanfrage "SELECT * from $tabelle where picid='$picid'";
    $result mysql_db_query ($dbname$dbanfrage$dbverbindung);
    while (
    $ausgabe mysql_fetch_array ($result))
    {

    echo
    ' '.$ausgabe['pic'].'';

    }

    mysql_close ($dbverbindung);

    ?>
    aber irgendwie funktioniert die Ausgabe nicht. Ich sehe immer nur die Ausgabe:

    Die Grafik "http://www.turnbeutel-verlierer.de/gallery.php?picid=1" kann nicht angezeigt werden, weil sie Fehler enthält.

    Weis jemand rat

    Danke
     

  11. #11
    shockshell shockshell ist offline Mitglied Brokat
    Registriert seit
    Jun 2005
    Ort
    Buxtehude (Niedersachsen)
    Beiträge
    256
    Der Fehler ist wahrscheinlich das Leerzeichen bei denem echo.

    echo ' ' sollte eher heißen
    echo $ausgabe['pic'];

    Zudem brauchst Du keine Schleife, da du ja nur ein Feld aus einem Datensatz ausgeben willst.

    Marcus
     
    Nichts hält so lange wie ein Provisorium....

  12. #12
    maga147 maga147 ist offline Mitglied Brokat
    Registriert seit
    Mar 2005
    Beiträge
    280
    Danke Es funktioniert

    Hatte scheinbar doch irgendwas mit der Ausgabe zu tun

    Hab die Schleife jetzt auch rausgenommen!


    Danke für deine Hilfe!
     

Ähnliche Themen

  1. [mySQL 5] Zu den Monaten Einträge zählen und Monate ohne Einträge auch ausgeben.
    Von FlaverSaver im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 27.09.10, 18:11
  2. HashMap einträge ausgeben!
    Von hoelle1985 im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 03.04.08, 17:52
  3. Antworten: 4
    Letzter Beitrag: 14.11.07, 08:07
  4. Blob Einträge automatisch generieren
    Von maga147 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 23.07.05, 13:13
  5. DB Einträge als Raster ausgeben
    Von nafets im Forum ASP
    Antworten: 4
    Letzter Beitrag: 08.10.04, 15:47