Visualizzare i dati di una pagina PHP in HTMl

  • Creatore Discussione Creatore Discussione aedesy
  • Data di inizio Data di inizio

aedesy

Nuovo Utente
20 Set 2012
16
0
0
Salve a tutti. Sono nuovo del forum. Sto realizzando un progetto per l'esame di Base di Dati. Si tratta di interrogare un database da una pagina web. Inserito il nome di un cantante, lo script PHP mi stampa la discografia del cantante associando all'album la corrispondente cover. Quello che vorrei fare è poter visualizzare questi risultati in un'opportuna pagina HTML, con una sua formattazione (una foto come sfondo, CSS, ecc). Quello che non so fare è passare questi parametri alla pagina HTML. Qualcuno mi saprebbe dire come fare? I dati dovrebbero essere visualizzati in una pagina più o meno fatta così (non sono tanto pratico col codice). Grazie.

HTML:
<html>
<head>
<title>my web page</title>
<style type="text/css">
body{
    background-image:url(sfondo.jpg);
    }
    #img{
         margin:2px;
         border:1px solid #000;
         width:280px;
         height:100%;
         padding:20px;
         text-align:center;
         color:#D0DFEC;
         background-color:rgba(28,114,185,0.5);
         overflow:auto;
         float:left;
             }
     #box{
         margin: 5px;
         border: 5px solid #0000ff;
         padding:20px;
         height: auto;
         width: auto;
         align:center;
         background-color:#ffffff
         text-align: center;}

     #img img
     {

         display:inline;
         margin:3px;
         border:2px solid #ffffff;
     }
  #desc
  {
  text-align:center;

  font-weight:normal;
  width:120px;
  margin:2px;
  }
</style>
<bgsound src="song.mp3" loop="-1">
</head>
<body>
<background="sfondo.jpg">
<div id="img">
<div id="box"><IMG SRC="sfondo.jpg">
<div class="desc">Aggiungi descrizione</div>
<object type="audio/x-mpeg" data="song.mp3" width="0" height="0" autoplay="true">
</object>
</body>
</html>
 
Salve a tutti. Sono nuovo del forum. Sto realizzando un progetto per l'esame di Base di Dati. Si tratta di interrogare un database da una pagina web. Inserito il nome di un cantante, lo script PHP mi stampa la discografia del cantante associando all'album la corrispondente cover. Quello che vorrei fare è poter visualizzare questi risultati in un'opportuna pagina HTML, con una sua formattazione (una foto come sfondo, CSS, ecc). Quello che non so fare è passare questi parametri alla pagina HTML. Qualcuno mi saprebbe dire come fare? I dati dovrebbero essere visualizzati in una pagina più o meno fatta così (non sono tanto pratico col codice). Grazie.

HTML:
<html>
<head>
<title>my web page</title>
<style type="text/css">
body{
    background-image:url(sfondo.jpg);
    }
    #img{
         margin:2px;
         border:1px solid #000;
         width:280px;
         height:100%;
         padding:20px;
         text-align:center;
         color:#D0DFEC;
         background-color:rgba(28,114,185,0.5);
         overflow:auto;
         float:left;
             }
     #box{
         margin: 5px;
         border: 5px solid #0000ff;
         padding:20px;
         height: auto;
         width: auto;
         align:center;
         background-color:#ffffff
         text-align: center;}

     #img img
     {

         display:inline;
         margin:3px;
         border:2px solid #ffffff;
     }
  #desc
  {
  text-align:center;

  font-weight:normal;
  width:120px;
  margin:2px;
  }
</style>
<bgsound src="song.mp3" loop="-1">
</head>
<body>
<background="sfondo.jpg">
<div id="img">
<div id="box"><IMG SRC="sfondo.jpg">
<div class="desc">Aggiungi descrizione</div>
<object type="audio/x-mpeg" data="song.mp3" width="0" height="0" autoplay="true">
</object>
</body>
</html>

La pagina la devi sempre salvare.php, pur integrando anche l'html, altrimenti il codice php non viene eseguito. Quindi eccoti il codice finito:
HTML:
<html>
<head>
<title>my web page</title>
<style type="text/css">
body{
    background-image:url(sfondo.jpg);
    }
    #img{
         margin:2px;
         border:1px solid #000;
         width:280px;
         height:100%;
         padding:20px;
         text-align:center;
         color:#D0DFEC;
         background-color:rgba(28,114,185,0.5);
         overflow:auto;
         float:left;
             }
     #box{
         margin: 5px;
         border: 5px solid #0000ff;
         padding:20px;
         height: auto;
         width: auto;
         align:center;
         background-color:#ffffff
         text-align: center;}

     #img img
     {

         display:inline;
         margin:3px;
         border:2px solid #ffffff;
     }
  #desc
  {
  text-align:center;

  font-weight:normal;
  width:120px;
  margin:2px;
  }
</style>
<bgsound src="song.mp3" loop="-1">
</head>
<body style="background-image: url(sfondo.jpg); background-repeat:repeat">
<?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; 
}
?>
<div id="img">
<div id="box">
<div class="desc">Aggiungi descrizione</div>
<object type="audio/x-mpeg" data="song.mp3" width="0" height="0" autoplay="true">
</object>
</body>
</html>

Ciao,
hackersatifal :byebye:
 
Grazie mille per la risposta. Quello che vorrei fare in sostanza è passare i risultati della query (cioè i vari echo) al css. Da quello che hai scritto ho capito (correggimi se sbaglio) che all'occorrenza posso tranquillamente aprire del codice PHP coi tag specifici. Come vedi c'è anche una foto come sfondo e un mp3. Se possibile vorrei poter associare il nome dell'artista che inserisco nel search (identificato con la variabile '$text') alla specifica foto/mp3 che saranno nominate come "nome_artista.jpg/.mp3". Spero di aver reso l'idea. Grazie.
 
Grazie mille per la risposta. Quello che vorrei fare in sostanza è passare i risultati della query (cioè i vari echo) al css. Da quello che hai scritto ho capito (correggimi se sbaglio) che all'occorrenza posso tranquillamente aprire del codice PHP coi tag specifici. Come vedi c'è anche una foto come sfondo e un mp3. Se possibile vorrei poter associare il nome dell'artista che inserisco nel search (identificato con la variabile '$text') alla specifica foto/mp3 che saranno nominate come "nome_artista.jpg/.mp3". Spero di aver reso l'idea. Grazie.

Sì, puoi aprire il codice php quando vuoi.
Per la seconda richiesta ti dico che, se ho capito bene, potresti fare come ti ho mostrato nella sezione php per mostrare la foto dell'album.
Se hai bisogno di aiuto, chiedi pure. :D
 
Mamma mia sto uscendo pazzo. Allora ricapitoliamo. Sto facendo nello stesso modo consigliatomi da te. Ho modificato il database in cui ho aggiunto il nome dello sfondo e il nome del file mp3. Fatta l'opportuna query non riesco a visualizzare la foto come sfondo. L'mp3 lo apre solo se il file è nella cartella principale. Se metto il file in un'altra cartella no. Ho usato la stessa sintassi per caricare le foto dalla cartella "img". Per lo sfondo sto utilizzando questo codice. E' corretto? Grazie.

PHP:
<body background-image="<?php echo "<{$row['NomeSfondo']}>";?>" background-repeat:"repeat">
 
Credo proprio che l'errore sia nei marcatori <>, prova a modificare il codice così:
PHP:
<body background-image="<?php echo "{$row['NomeSfondo']}";?>" background-repeat:"repeat">
Fammi sapere se funziona :)
Comunque inserisci anche il resto del codice per vedere se hai errori nelle query o qualcos'altro.
 
Ultima modifica:
ciao
PHP:
<body background-image="<?php echo "<{$row['NomeSfondo']}>";?>" background-repeat:"repeat">

a che ti servono quei < > in piu?

PHP:
<body background-image="<?php echo $row['NomeSfondo'];?>" background-repeat:"repeat">


poi se metti l'immagino o l'mp3 o qualche altro file in una cartella diversa da quella dello script che li richiama devi indicargli il percorso
es. lo script che chiama è nella root (cartella principale) se l'immagine e dentro la cartella chiamata immagini puoi fare

PHP:
<?php
$path="immagini/";
?>
<body background-image="<?php echo $path.$row['NomeSfondo'];?>" background-repeat:"repeat">
oppure senza entrare uscire due volte
PHP:
<?php
$path="immagini/";
echo "<body background-image=\"$path.$row['NomeSfondo']\" background-repeat:\"repeat\">";
?>
 
Ultima modifica:
Infatti quei <> non servno proprio a nulla. L'inesperienza frega. Il path non mi è proprio venuto in mente di indicarlo perché pensavo di indicare l'indirizzo della cartella nel modo seguente:

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

Invece si deve proprio specificare. Ad ogni modo posto questa bozza di codice (orrendo). Manca la parte inerente il passaggio delle foto nel CSS. Qualche parte è ancora incopleta. Adesso provo a fare come da voi cosigliato. Grazie mille per la disponibilità :)

PHP:
<html>
<head>
<title>my web page</title>

<?php
// INSERIMENTO VARIABILI DEL DATABASE
$user = "root";
$password = "aedesy";
$host = "127.0.0.1";
$database = "prova";

// CONNESSIONE AL DB E SELEZIONE TABELLA 
mysql_connect($host,$user,$password); 
mysql_select_db($database) or die( "Unable to select database"); 
$text = $_POST['word'];
$result = mysql_query("SELECT A.NomeSfondo,A.NomeMp3,D.Cover,D.Anno,D.NomeAlbum FROM Discografia D,Artista A WHERE (A.ID_Artista=D.ID_Art) and A.Nome='$text' ORDER BY D.Anno" );
if ($result && mysql_num_rows($result)>0){

// STAMPA DEI RISULTATI
while ($row=mysql_fetch_array($result)){
echo "<img src='img/".$row['Cover']."'/>&nbsp&nbsp";
echo "<b>{$row['NomeAlbum']}</b>&nbsp";
echo "<b>{$row['Anno']}</b><br><br>";
}
}else{
echo "L'artista cercato non è ancora presente nel database"; 
mysql_error(); 
exit; 
}
?>

<style type="text/css">
body{
    background-image:url(<?php echo "{$row['Cover']}"?>);
    }
    #img{
         margin:2px;
         border:1px solid #000;
         width:280px;
         height:100%;
         padding:20px;
         text-align:center;
         color:#D0DFEC;
         background-color:rgba(28,114,185,0.5);
         overflow:auto;
         float:left;
             }
     #box{
         margin: 5px;
         border: 5px solid #0000ff;
         padding:20px;
         height: auto;
         width: auto;
         align:center;
         background-color:#ffffff
         text-align: center;}

     #img img
     {

         display:inline;
         margin:3px;
         border:2px solid #ffffff;
     }

  }
</style>

</head>
<body background-image="<?php echo"{$row['NomeSfondo']}";?>" background-repeat:"repeat">

<div id="img">
<img src="<?php echo"<img src='img/".$row['NomeFoto']."'/>";?>"

</div>
<object type="audio/x-mpeg" data="<?php echo"<img src='mp3/".$row['NomeMp3']."'/>";?>" width="0" height="0" autostart="true">
<embed src="<?php echo"img src='mp3/".$row['NomeMp3']."'/>";?>" loop="1">
</object>
</body>
</html>
 
Prova a fare così:
PHP:
<body style="background-image: url (<?php echo "{$row['NomeSfondo']}";?>); background-repeat:"repeat"">
nell'url devi inserire anche la cartella nella quale sono contenuti gli sfondi.
 
Ciao questo è come ho impostato il codice ma non va. O meglio visualizza le foto e a parte visualizza lo schema del CSS (questo perché forse non so come passargli le foto). Ad ogni modo niente musica e sfondo. Rispetto ai suggerimenti, ho dovuto usare le graffe nei vari echo perché mi dava errore.

PHP:
<html>
<head>
<title>my web page</title>

<?php
// INSERIMENTO VARIABILI DEL DATABASE
$user = "root";
$password = "aedesy";
$host = "127.0.0.1";
$database = "prova";

// CONNESSIONE AL DB E SELEZIONE TABELLA 
mysql_connect($host,$user,$password); 
mysql_select_db($database) or die( "Unable to select database"); 
$text = $_POST['word'];
$result = mysql_query("SELECT A.NomeSfondo,A.NomeMp3,D.Cover,D.Anno,D.NomeAlbum FROM Discografia D,Artista A WHERE (A.ID_Artista=D.ID_Art) and A.Nome='$text' ORDER BY D.Anno" );
if ($result && mysql_num_rows($result)>0){

// STAMPA DEI RISULTATI
while ($row=mysql_fetch_array($result)){
echo "<img src='img/".$row['Cover']."'/>&nbsp&nbsp";
echo "<b>{$row['NomeAlbum']}</b>&nbsp";
echo "<b>{$row['Anno']}</b><br><br>";
}
}else{
echo "L'artista cercato non è ancora presente nel database"; 
mysql_error(); 
exit; 
}
?>

<style type="text/css">
body{
    background-image:url(<?php
    $path="sfondi/";
    echo"{$path}.{$row['NomeSfondo']}";?>);
    }
    #img{
         margin:2px;
         border:1px solid #000;
         width:280px;
         height:100%;
         padding:20px;
         text-align:center;
         color:#D0DFEC;
         background-color:rgba(28,114,185,0.5);
         overflow:auto;
         float:left;
             }
     #box{
         margin: 5px;
         border: 5px solid #0000ff;
         padding:20px;
         height: auto;
         width: auto;
         align:center;
         background-color:#ffffff
         text-align: center;}

     #img img
     {
         display:inline;
         margin:3px;
         border:2px solid #ffffff;
     }

  }
</style>
</head>

<?php
$path="sfondi/";
?>
<body background-image="<?php echo "{$path}.{$row['NomeSfondo']}";?>" repeat-background:"repeat">


<div id="img">
<div id="box"><img src="?php $path="sfondi/"; echo "{$path}.{$row['NomeSfondo']}";?>"></div></div>
<img src="<?php
           $path = "cover/";
           echo "{$path}.{$row['NomeFoto']}";
           ?>"
</div>

<bgsound src="<?php
$path = "mp3/";
echo "{$path}.{$row['NomeMp3']}";
?>"
autostart="true" loop="true">


</body>
</html>


Non è che il problema è qua?

PHP:
if ($result && mysql_num_rows($result)>0){
while ($row=mysql_fetch_array($result)){
echo "<img src='img/".$row['Cover']."'/>&nbsp&nbsp";
echo "<b>{$row['NomeAlbum']}</b>&nbsp";
echo "<b>{$row['Anno']}</b><br><br>"

Grazie a tutti :)
 
Ciao, ho dato uno sguardo veloce al codice e mi sono accorto di qualche errore, prova a modificare il codice così:
PHP:
<html> 
<head> 
<title>my web page</title> 

<?php 
// INSERIMENTO VARIABILI DEL DATABASE 
$user = "root"; 
$password = "aedesy"; 
$host = "127.0.0.1"; 
$database = "prova"; 

// CONNESSIONE AL DB E SELEZIONE TABELLA  
mysql_connect($host,$user,$password);  
mysql_select_db($database) or die( "Unable to select database");  
$text = $_POST['word']; 
$result = mysql_query("SELECT A.NomeSfondo,A.NomeMp3,D.Cover,D.Anno,D.NomeAlbum FROM Discografia D,Artista A WHERE (A.ID_Artista=D.ID_Art) and A.Nome='$text' ORDER BY D.Anno" ); 
if ($result && mysql_num_rows($result)>0){ 

// STAMPA DEI RISULTATI 
while ($row=mysql_fetch_array($result)){ 
echo "<img src='img/".$row['Cover']."'/>&nbsp&nbsp"; 
echo "<b>{$row['NomeAlbum']}</b>&nbsp"; 
echo "<b>{$row['Anno']}</b><br><br>"; 
} 
}else{ 
echo "L'artista cercato non è ancora presente nel database";  
mysql_error();  
exit;  
} 
?> 

<style type="text/css"> 
body{ 
    background-image:url(sfondi/<?php 
    echo"{$row['NomeSfondo']}";?>); 
    } 
    #img{ 
         margin:2px; 
         border:1px solid #000; 
         width:280px; 
         height:100%; 
         padding:20px; 
         text-align:center; 
         color:#D0DFEC; 
         background-color:rgba(28,114,185,0.5); 
         overflow:auto; 
         float:left; 
             } 
     #box{ 
         margin: 5px; 
         border: 5px solid #0000ff; 
         padding:20px; 
         height: auto; 
         width: auto; 
         align:center; 
         background-color:#ffffff 
         text-align: center;} 

     #img img 
     { 
         display:inline; 
         margin:3px; 
         border:2px solid #ffffff; 
     } 

  } 
</style> 
</head> 

<?php 
$path="sfondi/"; 
?> 
<body style="background-image: url (sfondi/<?php echo "{$row['NomeSfondo']}";?>); background-repeat:"repeat"">

<div id="img"> 
<div id="box"></div></div> 
<img src="cover/<?php  
           echo "{$row['NomeFoto']}"; 
           ?>" />
</div> 

<bgsound src="mp3/<?php 
echo "{$row['NomeMp3']}";
?>" 
autostart="true" loop="true"> 


</body> 
</html>
 
Ciao. Niente da fare. Sto facendo innumerevoli tentativi ma il risultato è sempre lo stesso. Foto e CSS staccati, niente immagine e musica in background. Non ho idea di come poter risolvere.
 
Sto facendo delle piccole prove e a qualche risultato sono arrivato. Con il seguente codice
PHP:
<html>
<head>
<title>my web page</title>

<?php
// INSERIMENTO VARIABILI DEL DATABASE
$user = "root";
$password = "aedesy";
$host = "127.0.0.1";
$database = "prova";

// CONNESSIONE AL DB E SELEZIONE TABELLA 
mysql_connect($host,$user,$password); 
mysql_select_db($database) or die( "Unable to select database"); 
$text = $_POST['word'];
$result = mysql_query("SELECT A.NomeSfondo,A.NomeMp3,D.Cover,D.Anno,D.NomeAlbum FROM Discografia D,Artista A WHERE (A.ID_Artista=D.ID_Art) and A.Nome='$text' ORDER BY D.Anno" );
if ($result && mysql_num_rows($result)>0){

// STAMPA DEI RISULTATI
while ($row=mysql_fetch_array($result)){

$risultati=$row;

}
}else{
echo "L'artista cercato non è ancora presente nel database"; 
mysql_error(); 
exit; 
}
?>

<style type="text/css">
body{
    background-image:url("sfondi/<?php

    echo"{$risultati['NomeSfondo']}";?>");
    }
    #bor{
         margin:2px;
         border:1px solid #000;
         width:300px;
         height:100%;
         padding:10px;
         text-align:center;
         color:#D0DFEC;
         background-color:rgba(28,114,185,0.5);
         overflow:auto;
         float:left;
             }
     #box{
         margin: 5px;
         border: 5px solid #0000ff;
         padding:10px;
         height: auto;
         width: auto;
         align:center;
         background-color:#ffffff
         text-align: center;}

     #img img
     {

         display:inline;
         margin:3px;
         border:2px solid #ffffff;
     }

  }
</style>
</head>

<?php
$path="sfondi/";
?>
<body style="background-image=:url ("sfondi/<?php  echo "{$risultati['NomeSfondo']}";?>); repeat-background:"repeat"">


<div id="bor">
<div id="box">
<div class="img">
<img src="cover/
<?php
echo "{$risultati['Cover']}";?>">

<?php
echo "<b>{$risultati['NomeAlbum']}</b>";
echo "<b>{$risultati['Anno']}</b>";
           ?>
</div></div></div>

<bgsound src="mp3/<?php
echo "{$risultati['NomeMp3']}";
?>"
autostart="true" loop="true">


</body>
</html>

riesco a visualizzare la pagina nel mondo in cui voglio. Musica niente ancora. L'unico problema è che su mi viene memorizzato solo un risultato dei tre previsti, ovvero la prima riga (a $row viene associato un array giusto?). O devo modificare ancora l'istruzione all'interno del WHILE in modo che le righe siano controllate tutte, oppure devo portare questo codice

PHP:
<?php
$path="sfondi/";
?>
<body style="background-image=:url ("sfondi/<?php  echo "{$risultati['NomeSfondo']}";?>); repeat-background:"repeat"">


<div id="bor">
<div id="box">
<div class="img">
<img src="cover/
<?php
echo "{$risultati['Cover']}";?>">

<?php
echo "<b>{$risultati['NomeAlbum']}</b>";
echo "<b>{$risultati['Anno']}</b>";
           ?>
</div></div></div>

<bgsound src="mp3/<?php
echo "{$risultati['NomeMp3']}";
?>"
autostart="true" loop="true">

all'interno del WHILE. Consigli?
 

Discussioni simili