Associare una foto al risultato di una query

aedesy

Nuovo Utente
20 Set 2012
16
0
0
Salve a tutti. Sono un novizio di PHP. Sto facendo un piccolo progettino per l'esame di Base di Dati. Ho un database in cui ci sono inseriti dei nomi di cantanti. Se il cantante è presente nel database, devo visualizzare la rispettiva discografia coi titoli degli album. E fin qui tutto ok. Solo che vorrei associare le corrispondenti cover (sistemate in un'opportuna cartella) e non so come fare. Qualcuno mi potrebbe aiutare? Grazie.
 

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
Salve a tutti. Sono un novizio di PHP. Sto facendo un piccolo progettino per l'esame di Base di Dati. Ho un database in cui ci sono inseriti dei nomi di cantanti. Se il cantante è presente nel database, devo visualizzare la rispettiva discografia coi titoli degli album. E fin qui tutto ok. Solo che vorrei associare le corrispondenti cover (sistemate in un'opportuna cartella) e non so come fare. Qualcuno mi potrebbe aiutare? Grazie.
La prima cosa che devi fare è inserire il nome della foto che devi mostrare in questo modo "foto.jpg" (oppure altre estensioni).
Per poter estrarre l'immagine e mostrarla devi prima prelevare questo campo con una query dal database e poi inserire con una variabile il dato nel percorso dell'immagine. Ecco l'esempio:
PHP:
<?php 
$dati = mysql_query("SELECT * FROM cantanti"); // così stiamo prelevando anche la foto della copertina dell'album
$risultato= mysql_fetch_array($dati); 
echo <<<EOF
<img src="uploads/{$risultato['foto']}"> // ipotetica cartella uploads per le foto delle copertine
EOF;
?>
Così dovrebbe andare :byebye:
 

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0

La prima cosa che devi fare è inserire il nome della foto che devi mostrare in questo modo "foto.jpg" (oppure altre estensioni).
Per poter estrarre l'immagine e mostrarla devi prima prelevare questo campo con una query dal database e poi inserire con una variabile il dato nel percorso dell'immagine. Ecco l'esempio:
PHP:
<?php 
$dati = mysql_query("SELECT * FROM cantanti"); // così stiamo prelevando anche la foto della copertina dell'album
$risultato= mysql_fetch_array($dati); 
echo <<<EOF
<img src="uploads/{$risultato['foto']}"> // ipotetica cartella uploads per le foto delle copertine
EOF;
?>
Così dovrebbe andare :byebye:
Scusa, mi sono accorto che c'era un commento non preso, prova questo codice (la cartella uploads è la cartella nella quale salvi le foto delle copertine):
PHP:
<?php 
$dati = mysql_query("SELECT * FROM cantanti"); // così stiamo prelevando anche la foto della copertina dell'album
$risultato= mysql_fetch_array($dati); 
echo <<<EOF
<img src="uploads/{$risultato['foto']}">
EOF;
?>
 

aedesy

Nuovo Utente
20 Set 2012
16
0
0
@hackersatifal

Grazie per la risposta. E' da oggi pomeriggio che cerco di provare ma non va. Mi escono gli album con accanto un quadratino bianco. Ti spiego quello che ho fatto. Ho aggiunto una nuova tabella di caratteri al database denominata "NomeFoto" in cui ci sono scritti i nome delle copertine associate ai vari album (tipo "nome_album.jpg"). Dopo di che ho modificato la query. Se non ho capito male, l'istruzione

PHP:
<img src="uploads/{$risultato['foto']}">
da te scritta non fa altro che caricare/visualizzare il file il cui nome coincide con il risultato della query. Giusto?

Ti scrivo il codice che ho scritto io:

PHP:
$text = $_POST['word'];
$result = mysql_query("SELECT D.NomeAlbum,D.NomeFoto from Discografia D,Artista A where (A.ID_Artista=D.ID_Art) and A.Nome='$text'");
if ($result && mysql_num_rows($result)>0){
while ($row=mysql_fetch_array($result)){
echo "<img src='img/$row{['NomeFoto']}'>";
echo $row['NomeAlbum']."<br>";
}
}else
echo "L'artista cercato non è ancora presente nel database";
mysql_error();
exit;
Ho provato anche a modificare l'estensione da JPG a JPEG ma niente. Per caso incide la risoluzione? O bisogna inserire qualche altro parametro? Grazie.
 

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
Prova qualcosa del genere anche se non sono sicuro che funzioni perché non l'ho provato:
PHP:
<?php
$text = $_POST['word']; 
$result = mysql_query("SELECT D.NomeAlbum,D.NomeFoto FROM Discografia D.Artista A WHERE (A.ID_Artista=D.ID_Art) AND A.Nome='$text'");
if (($result) && (mysql_num_rows($result))>0){ 
while ($row=mysql_fetch_array($result)){ 
echo "<img src='img/{$row['NomeFoto']}'>"; 
echo "{$row['NomeAlbum']}<br>"; 
} 
}else {
echo "L'artista cercato non è ancora presente nel database"; 
mysql_error(); 
exit; 
}
?>
Fammi sapere :byebye:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
Mi escono gli album con accanto un quadratino bianco
se ti esce il quadratino bianco vuol dire che non trova l'immagine o è sbagliato il nome e è sbagliato il percorso o untrambi
per verificare se è errato il nome stampati il valore nomeFoto.
poi mi sono accorto che hai scritto
PHP:
<?php
//....
echo "<img src='img/$row{['NomeFoto']}'>";
//...
?>
le graffe sono messe male

prova a scriverla così
PHP:
<?php
//...
echo "<img src='img/".$row['NomeFoto']."'/>";
//...
?>
 

aedesy

Nuovo Utente
20 Set 2012
16
0
0
GRAZIIIIEEEE perfetto funziona in entrambi i modi :fonzie:

sia

PHP:
echo "<img src='img/{$row['NomeFoto']}'>";
sia

PHP:
echo "<img src='img/".$row['NomeFoto']."'/>";
Grazie mille per l'aiuto :beer:



PS: passare questi risultati (Nome dell'album e Cover) ad una pagina HTML sarebbe complicato da fare?
 
Ultima modifica:

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
GRAZIIIIEEEE perfetto funziona. Erano le graffe. Finalmente :fonzie:. Grazie mille per l'aiuto.

PS: passare questi risultati (Nome dell'album e Cover) ad una pagina HTML sarebbe complicato da fare?
Prego :D.
Comunque non sarebbe complicato da fare: io lo farei con questa pagina stampando con il php.
P.S. Praticamente è già una pagina html, ma inserendo tutti i marcatori per l'html la completeresti :byebye:
 

aedesy

Nuovo Utente
20 Set 2012
16
0
0
Quindi potrei tranquillamente mettere uno sfondo, un file musicale e qualche CSS?
 

aedesy

Nuovo Utente
20 Set 2012
16
0
0
Grazie mille per la disponibilità. Al prof. basterebbe anche questo ma visto che bisogna sempre migliorarsi aprirò un altro thread a prosito (immagino sempre nella sezione PHP). Grazie INFINITAMENTE :byebye:
 

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
Grazie mille per la disponibilità. Al prof. basterebbe anche questo ma visto che bisogna sempre migliorarsi aprirò un altro thread a prosito (immagino sempre nella sezione PHP). Grazie INFINITAMENTE :byebye:
Sarebbe meglio la sezione html, ma anche qui ti aiuteremo visto che si parla anche di php :)