Visualizzazione risultati 1 fino 10 di 10

Discussione: Mostrare immagine da database (era "piccolo aiutino")

  1. #1
    Guest

    Predefinito Mostrare immagine da database (era "piccolo aiutino")

    chiedo un piccolo aiutino, vorrei visualizzare le immagini salvate in un campo blob ma con lo script che ho realizzato visualizzo solo i dati in binario, vi posto lo script
    Codice PHP:
    <?php

    //Qui definiamo semplicemente le variabili da utilizzare per connetterci
    $db_host = 'localhost'; //Host,solitamente "localhost"
    $db_user = 'root'; //Username di accesso al database
    $db_pass = ''; //Password di accesso al database
    $db_name = 'immagini'; //Nome del database a cui connettersi

    //Con la funzione mysql_connect ci connetteremo e successivamente sceglieremo il database con mysql_select_db
    $connection = mysql_connect ($db_host, $db_user, $db_pass);
    $id=$_GET['id'];
    if (
    $connection == false){
    die (
    'Impossibile Connettersi al database');
    }
    $database = mysql_select_db ($db_name);
    if (
    $database == false){
    die (
    'Impossibile connettersi al database selezionato');
    }
    $myvarsql = "SELECT fotografia FROM `foto` where id='$id' ";
    $myquery = mysql_query ($myvarsql,$connection)
    or die (
    "query di selezione fallita $myvarsql <br>");

    while (
    $myvalues = mysql_fetch_array($myquery))

    {
    $fotografia = $myvalues["fotografia"];
    echo
    "<img src=\"$fotografia\">";


    }
    ?>
    cosa devo aggiungere per visualizzare correttamente l'immagine?

    grazie in anticipo

  2. #2
    Guest

    Predefinito

    a me sembrerebbe tutto giusto... sempre se nel campo fotografia c'è il nome della foto e che le foto sono tutte nella stessa cartella dello script...

    un paio di accrgimenti... quando scegli il database non importa lo assegni a una variabile, va bene anche questo codice qui:
    Codice PHP:
    mysql_select_db($database, $connection)
    or die (
    "Errore nella selezione del database.");
    per la stringa di sql io preferisco roba come questa:
    Codice PHP:
    $myvarsql = "SELECT fotografia FROM 'foto' where id='$id' LIMIT 1";
    e questo
    Codice PHP:
    $fotografia = $myvalues[fotografia];

  3. #3
    Guest

    Predefinito

    Se il record contiene il file binario dell'immagine, non puoi stamparlo come link.
    Nel tuo caso devi restituire gli headers appropriati e poi chiamare quel file php come una vera e propria immagine, con <img src="mioscript.php" />


    Ciao!

  4. #4
    Guest

    Predefinito

    ho aggiunto la funzione header ma l'unico risultato che ho è che non visualizzo più i dati binari ma vedo solo la classica x al posto dell'immagine.
    premetto che ho caricato l'immagine direttamente con phpmyadmin.
    cosa c'è ancora che non va?
    Codice PHP:
    <?php

    //Qui definiamo semplicemente le variabili da utilizzare per connetterci
    $db_host = 'localhost'; //Host,solitamente "localhost"
    $db_user = 'root'; //Username di accesso al database
    $db_pass = ''; //Password di accesso al database
    $db_name = 'immagini'; //Nome del database a cui connettersi

    //Con la funzione mysql_connect ci connetteremo e successivamente sceglieremo il database con mysql_select_db
    $connection = mysql_connect ($db_host, $db_user, $db_pass);
    $id=$_GET['id'];
    if (
    $connection == false){
    die (
    'Impossibile Connettersi al database');
    }
    $database = mysql_select_db ($db_name);
    if (
    $database == false){
    die (
    'Impossibile connettersi al database selezionato');
    }
    $myvarsql = "SELECT fotografia FROM `foto` where id='$id' ";
    $myquery = mysql_query ($myvarsql,$connection)
    or die (
    "query di selezione fallita $myvarsql <br>");

    while (
    $myvalues = mysql_fetch_array($myquery))
    header ("content-type: image/jpeg");
    {
    $fotografia = $myvalues["fotografia"];
    echo
    "<img src=\"$fotografia\">";


    }
    ?>

  5. #5
    Guest

    Predefinito

    2 cose:
    1 togli il tag <img />
    2 sicuro che l'immagine sia in jpeg?

    ciao
    lol21

  6. #6
    Guest

    Predefinito

    l'immagine è in jpeg e il tag <img /> l'ho tolto ma il risultato è lo stesso
    lo script dovrebbe essere giusto....potrebbe essere che nel caricamento nel database il file si sia corrotto?

    Ciao e grazie
    Gianluca

  7. #7
    Guest

    Predefinito

    Codice PHP:
    ...
    while (
    $myvalues = mysql_fetch_array($myquery)) //attento quì
    header ("content-type: image/jpeg"); // e quì
    {
    $fotografia = $myvalues["fotografia"];
    echo
    $fotografia;
    ...
    ecco l'errore, hai messo un header tra il while e la sua parentesi graffa {
    mettilo prima del while.

  8. #8
    Guest

    Predefinito

    grazie mille per l'aiuto ho spostato la funzione header e l'ho messa nella posizione corretta e poi ho ho cambiato il server locale, io usavo easyphp 1.7 che evidentemente ha qualche problema e sto utilizzando la versione 1.8 che mi visualizza tutto correttamente.

  9. #9
    Guest

    Predefinito

    Ho notato che hai scritto:

    Codice PHP:
    //Qui definiamo semplicemente le variabili da utilizzare per connetterci
    $db_host = 'localhost'; //Host,solitamente "localhost"
    $db_user = 'root'; //Username di accesso al database
    $db_pass = ''; //Password di accesso al database
    $db_name = 'immagini'; //Nome del database a cui connettersi
    E' la prima cosa che mi è saltata all'occhio, se lo fai su AV devono essere impostati così i dati:

    Codice PHP:
    //Qui definiamo semplicemente le variabili da utilizzare per connetterci
    $db_host = 'localhost'; //Host,solitamente "localhost"
    $db_user = 'lordbyron'; //Username di accesso al database
    $db_pass = ''; //Password di accesso al database
    $db_name = 'my_lordbyron'; //Nome del database a cui connettersi
    Non so se è per questo però il tuo problema

  10. #10
    Guest

    Predefinito

    il problema come ti dicevo prima è stato risolto, adesso visualizzo tutto correttamente, grazie per le dritte per collegarmi ad altervista, in seguito mi saranno utili. Per adesso vado in locale perchè il sito è ancora in restyling. Il problema è che usando easy php 1.7 non riuscivo a visualizzare il tutto, mentre con con la versione 1.8 è tutto a posto.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •