Bilder aus SQL Datenbank auslesen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bilder aus SQL Datenbank auslesen?

    Hallo Leute, ich hab da wieder mal ne Frage.
    Ich speichere alle meine Bilder mittels eines Skripts in die Datenbank und zwar als BLOB und das funzt auch alles super.

    Ich will nun ALLE Bilder die in der Datenbank gespeichert sind auslesen, jedoch wir statt dem Bild nur der Code des Bildes angezeigt, Ihr wißt schon diese komischen Zeichen halt.

    Habt Ihr eine Ahnung wie ich das Prob fixen kann??

    So sieht das Skript derzeit aus:

    PHP-Code:
    <?php

        
    @MYSQL_CONNECT("+++++","++++++","+++++++");

        @
    mysql_select_db("+++++++");

        
    $query "SELECT * FROM eventplaner";
        
    $result = @MYSQL_QUERY($query);
        
    $num mysql_num_rows($result);        
        
        
        echo 
    "<table border= 1 width= 433>";



       for (
    $i=0$i<$num$i++)    {

        
    $data = @MYSQL_RESULT($result,0,"bin_data");
        
    $type = @MYSQL_RESULT($result,0,"filetype");
        
    $beschreibung = @MYSQL_RESULT($result,0,"beschreibung");
        
        
        echo 
    "<td><img src='$data'>/td>";
      echo 
    "</tr>";
      echo 
    "<tr>";
        echo 
    "<td>$type</td>";
      echo 
    "</tr>";
      echo 
    "<tr>";
        echo 
    "<td>$beschreibung</td>";
      echo 
    "</tr>";

     

     

    }
    echo 
    "</table>";

    ?>

  • #2
    geb doch mal data so aus,... vll. ist da ja schon alles falsch
    um weitere gedanken auszuführen bin ich zu müde

    Kommentar


    • #3
      das @ magst du wohl sehr?
      wie wärs mal mit mysql_error() statt zu versuchen alle Fehlermeldungen zu unterdrücken?

      und warum der Aufwand mit der for Schleife?
      würde ein mysql_fetch_array mit einer while nicht ausreichen


      und kann es sein das du vor der Ausgabe erst noch den Header des images typen senden musst?

      header('content-type: image/??');


      PS: mysql.com empfiehlt:
      Bei einer normalen Webserver-Konfiguration sollten Bilder als separate Dateien gespeichert werden. Das heißt, speichern Sie nur einen Verweis zur Datei in der Datenbank. Der Hauptgrund ist, dass normale Webserver viel besser darin sind, Dateien zu cachen als Datenbankinhalte. Daher ist es viel einfacher, ein schnelles System zu bekommen, wenn Sie Dateien benutzen.
      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #4
        geht leider nicht

        So ich hab das ding jetzt modifieziert und schicke den Content type an den Header, aber leider ihne erfolg, sonst noch vorschläge??


        PHP-Code:
            @MYSQL_CONNECT("++++","++++++++","++++++++");

            @
        mysql_select_db("++++++++++++");

            
        $query "SELECT * FROM eventplaner";
            
        $result = @MYSQL_QUERY($query);
            
        $num mysql_num_rows($result);        
            
            
            echo 
        "<table border= 1 width= 433>";



           for (
        $i=0$i<$num$i++)  
          {

            
        $data = @MYSQL_RESULT($result,0,"bin_data");
            
        $type = @MYSQL_RESULT($result,0,"filetype");
            
        $beschreibung = @MYSQL_RESULT($result,0,"beschreibung");
            
            
            
            
        Header"Content-type: image/pjpeg");
            
            echo 
        "<td>'$data'</td>";
          echo 
        "</tr>";
          echo 
        "<tr>";
            echo 
        "<td>$type</td>";
          echo 
        "</tr>";
          echo 
        "<tr>";
            echo 
        "<td>$beschreibung</td>";
          echo 
        "</tr>";

         

         

        }
        echo 
        "</table>";

        ?> 

        Kommentar


        • #5
          Du hast das falsch verstanden mit der Ausgabe von Bildern per PHP. Ein Bild wird in PHP wie folgt erzeugt:

          a) erstmal sendest du die entsprechenden Header

          b) dann den Bild-Code

          c) keine weitere Ausgabe (also kein HTML, oder sonstwas für Schnickschnack) darf ausgegeben werden, du kannst also immer nur _ein_ Bild erzeugen

          Alles was nach dem Image-Header kommt interpretiert der Browser als Binärdaten (diese komischen Zeichen ), die er für die Erzeugung des Bildes verwendet. Wenn da drinne natürlich irgendwelche HTML-Codes wie bei dir <td> und <table> etc. vorkommen wird der Code des Bildes dadurch zerstört und der Browser zeigt das Bild nicht an. Also nur den Bild-Code ausgeben, nichts anderes.

          Um das ausgegebene Bild jezt in einer Webseite anzeigen zu können musst du das PHP-Skript, dass das Bild erzeugt als Quelle im <img>-tag angegeben - also etwa so: <img src="./img.php">.

          Kommentar


          • #6
            dass das Bild erzeugt als Quelle im <img>-tag angegeben - also etwa so: <img src="./img.php">.
            für jedes bild in der db!

            Ich speichere alle meine Bilder mittels eines Skripts in die Datenbank und zwar als BLOB und das funzt auch alles super.
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              Thx

              Danke Ihr hatte Recht, jetzt funzt alles, war das Headerproblem wie vermutet!

              Kommentar

              Lädt...
              X