Come recuperare le immagini da un database MySQL e visualizzare in un tag html

Ho creato un database MySQL con una tabella con phpmyadmin. Ho creato questa tabella con una colonna BLOB di tenere un file jpeg.

Ho problemi per quanto riguarda la variabile php $result qui.

Il mio codice così lontano: (catalog.php):

<body>
<?php
  $link = mysql_connect("localhost", "root", "");
  mysql_select_db("dvddb");
  $sql = "SELECT dvdimage FROM dvd WHERE id=1";
  $result = mysql_query("$sql");
  mysql_close($link);

?>
<img src="" width="175" height="200" />
</body>

Come posso ottenere il variabile $risultato da PHP in HTML in modo che posso visualizzare, in <img> tag?

Whaaaat problemi? È necessario dire che il codice è sbagliato, al momento.
Si può iniziare con il recupero di tali risultati
non mi è chiaro della sintassi coinvolti per visualizzare il BLOB immagine
Come posso recuperare questi risultati?
Solo i miei 2 centesimi e non riguarda la tua domanda, ma penso che sarebbe meglio archiviare le immagini sul vostro file di sistema e solo il riferimento del percorso nel tuo database. Potrai ottenere prestazioni migliori, e più flessibilità in cui memorizzare le immagini.

OriginaleL’autore exxcellent | 2011-10-17

5 Replies
  1. 38

    Non si può. È necessario creare un altro script php per restituire l’immagine di dati, ad es. getImage.php. Cambiare catalog.php per:

    <body>
    <img src="getImage.php?id=1" width="175" height="200" />
    </body>

    Poi getImage.php è

    <?php
    
      $id = $_GET['id'];
      //do some validation here to ensure id is safe
    
      $link = mysql_connect("localhost", "root", "");
      mysql_select_db("dvddb");
      $sql = "SELECT dvdimage FROM dvd WHERE id=$id";
      $result = mysql_query("$sql");
      $row = mysql_fetch_assoc($result);
      mysql_close($link);
    
      header("Content-type: image/jpeg");
      echo $row['dvdimage'];
    ?>
    pensare è @daiscog.Il suo lavoro bene.Vi ringrazio molto
    ma la cosa è,ho quasi 50 immagini nel mio db.Avete scritto per ottenere una sola immagine.Come faccio a visualizzare le immagini tutto in una pagina
    Per ottenere un’immagine diversa dal DB è sufficiente modificare il id ottenere parametro: <img src="getImage.php?id=1" width="175" height="200" /> <img src="getImage.php?id=2" width="175" height="200" /> ...
    Questa risposta non è corretta in quanto È possibile, vista Ilmari risposta.
    Che è, l’intero script. Anche se in questi giorni devi usare MySQLi invece di mysql_* funzioni (questa risposta è di 7 anni).

    OriginaleL’autore megaflop

  2. 25

    Tecnicamente, si può troppo mettere i dati di immagine in un tag img, utilizzando dati Uri.

    <img src="data:image/jpeg;base64,<?php echo base64_encode( $image_data ); ?>" />

    Ci sono alcune circostanze in cui questo potrebbe anche essere utile, anche se nella maggior parte dei casi è meglio servire l’immagine attraverso uno script separato come suggerisce daiscog.

    Mi chiedevo se qualcuno potrebbe suggerire una data URI. Non è molto efficiente, IMO (nessun browser/proxy caching), ma sicuramente degna di nota.

    OriginaleL’autore Ilmari Karonen

  3. 3

    È necessario recuperare e disect le informazioni di ciò di cui ha bisogno.

    while($row = mysql_fetch_array($result)) {
     echo "img src='",$row['filename'],"' width='175' height='200' />";
    }

    OriginaleL’autore James Williams

  4. 1

    Prima di tutto avete bisogno di recuperare la riga risultante dal set di risultati della query. Per questo si può utilizzare mysql_fetch_row. Ora che avete la riga caricata è possibile accedere al valore recuperato e l’eco in src.

    Per esempio:

    $sql = "SELECT dvdimage FROM dvd WHERE id=1";
    $result = mysql_query($sql);
    $row = mysql_fetch_row($result);
    ?>
    <img src="<?=$row[0]?>" width="175" height="200" />
    <?
    Non si può mettere di dati immagine raw all’interno di un img src. OP afferma chiaramente il database memorizza i dati di immagine, non è un percorso per il file di immagine. Inoltre, l’uso di <?= dovrebbero essere evitati, in quanto è la config-dipendente e, come tale, non portatile codice
    Lo so, ho letto male la domanda, ma dal momento che la risposta corretta è stata accettata e il mio codice ha spiegato il flusso di come recuperare i dati da mysql mi permetta di essere qui.

    OriginaleL’autore Marcus

  5. 1

    aggiungere $row = mysql_fetch_object($result); dopo il mysql_query();

    html <img src="<?php echo $row->dvdimage; ?>" width="175" height="200" />

    Non si può mettere di dati immagine raw all’interno di un img src. OP afferma chiaramente il database memorizza i dati di immagine, non è un percorso per il file di immagine.
    grazie, stavo pensando che accede al percorso.

    OriginaleL’autore Punit

Lascia un commento