Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168

    Richiamare e visualizzare Immagine in DB

    Ciao a tutti, premetto che è da poco che ho cominciato a lavorare con il php & mySQL, e ho ancora un po' di problemi per quanto riguarda la sintassi, ed è proprio qui il mio problema, vi spiego:
    Ho realizzato un database, con all'interno 3 tabelle, Tblmenu, Tblcontainer e Tblfoto.
    Ho relazionato la Tblmenu con la Tblcontainer, in modo che ogni volta che l'utente clicca una voce del menu, dinamicamente compare il testo corretto nel box apposito (fin qui tutto ok).

    Ora vorrei tramite Tblfoto, visualizzare anche una o più foto assieme al testo.
    Ho dunque creato 3 campi in Tblfoto, ID, ID_container (per specificare con quale contenuto deve visualizzarsi la foto) e Foto (campo in cui inserisco semplicemente la path, in questo caso /images/foto1.jpg).

    Tramite codice, come faccio a dire di richiamare l'immagine corrispondente al testo (impostato nel database) e poi visualizzarla con il tag <img> ?

    Il codice che ero riuscito a creare per il testo (non sarà perfetto magari, ma funziona bene) è questo:
    Codice PHP:
    <?php         
    $Query 
    "select * from Tblcontainer";         
    $Query .= " where ID_Menu = " $idMenu;         
    $Risultato=mysql_query($Query$conn);         
    if (!
    $Risultato)         {             die("La pagina selezionata non contiene alcun valore o testo");         }             
    while (
    $riga=mysql_fetch_array($Risultato))         {             
    echo 
    "

    $riga[Text] . "</p>";         }     ?>
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    Il codice si potrebbe correggere un pò, comunque venendo al tuo punto, con lo stesso principio puoi fare una select e così ottieni il valore del percorso. Tra l'altro, se le immagini si trovano tutte in "images", non c'è bisogno che ti salvi anche "/images/" nel db, basta inserire il nome del file.

    Poi, così come hai inserito il testo con

    Codice PHP:
    echo "

    $riga[Text] . "</p>"
    fai così (in questo caso io mi trovo meglio a partire dal codice html e inserire in php solo la variabile, ma ovviamente è uguale)

    codice:
    <img src ="images/<?php echo $riga["img"];?>" >

  3. #3
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168
    Codice PHP:
    <?php              
    $Queryfoto 
    "select * from Tblfoto";              
    $Queryfoto .= " where Foto = " $idFoto;              
    $Foto=mysql_query($Queryfoto$conn);                  
    if (!
    $Foto)                          
    {                               
    die(
    "La pagina selezionata non contiene alcuna foto");                          
    }                               
    while (
    $riga=mysql_fetch_array($Foto))                           
    {                                   
    echo 
    "

    $riga[Foto] . "</p>";        
    }      
    ?>
    Ora compare "La pagina selezionata non contiene alcuna foto" quindi almeno stampa "l'errore", dove sbaglio?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    miglioriamo un pò la query: innanzitutto se ti serve solo un campo non ti conviene selezionare tutto, ciò rallenta la query. Poi il valore è sempre meglio metterlo tra apici.
    non conosco come tu hai chiamato le colonne, nè cosa c'è dentro e cosa passi nella variabile $idFoto.
    nella colonna foto c'è un percorso o un numero? perchè il fatto che tu abbia chiamato la variabile idfoto mi lascia pensare che sia un numero. Credo che tu abbia sbagliato solo la colonna, da quello che capisco hai una colonna id e una col percorso o sbaglio?


    Codice PHP:
    $Queryfoto "select Foto from Tblfoto where id = '" $idFoto ."'; 
    poi prova a fare
    Codice PHP:
    echo mysql_num_rows($Foto
    per vedere quanti risultati ti dà la query.

    in ultimo, se il risultato sarà sempre unico non vale la pena fare il ciclo while!

    Fammi sapere

  5. #5
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168
    Originariamente inviato da diabolikk
    miglioriamo un pò la query: innanzitutto se ti serve solo un campo non ti conviene selezionare tutto, ciò rallenta la query. Poi il valore è sempre meglio metterlo tra apici.
    non conosco come tu hai chiamato le colonne, nè cosa c'è dentro e cosa passi nella variabile $idFoto.
    nella colonna foto c'è un percorso o un numero? perchè il fatto che tu abbia chiamato la variabile idfoto mi lascia pensare che sia un numero. Credo che tu abbia sbagliato solo la colonna, da quello che capisco hai una colonna id e una col percorso o sbaglio?
    Ho creato 3 campi in Tblfoto, ID, ID_container (per specificare con quale contenuto deve visualizzarsi la foto) e Foto (campo in cui inserisco semplicemente la path, in questo caso /images/foto1.jpg).
    - ID è la chiave primaria e progressiva (la genera da sola)
    - ID_container (è il campo ID del contenuto in cui voglio che compaia la foto)
    - Foto (è il campo Varchar in cui inserisco la path in questo caso /images/foto1.jpg)


    Grazie dell'aiuto!

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    ok, quindi la variabile $idfoto che gli passi non corrisponde al valore della colonna Foto, ma all'id (non so se a quello autoincrementale o quello del contenuto). Quindi a seconda di quale sia la query sarà

    $Queryfoto = "select Foto from Tblfoto where ID_container = '" . $idFoto ."';

    oppure $Queryfoto = "select Foto from Tblfoto where ID = '" . $idFoto ."';

    prova, se non funziona fammi l'esempio scrivendomi i valori di una riga del database e il valore della variabile $idFoto.

    Accertati inoltre, facendo echo $idFoto, che la variabile sia passata correttamente!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.