Ho due tabelle, una con tutti i comuni di Italia ed una con tutti i monumenti da visitare di ogni comune di Italia. Le due tabelle sono collegate con comuni.id = monumenti.id_comune. Ciò che io devo fare è quello di stampare il nome del comune, descrizione del comune, ed elenco dei monumenti da visitare.
Ad esempio
Roma
E' la capitale di Italia, città situata nella regione lazio ecc. ecc.
Da visitare:
- colosseo
- fontana di Trevi
- pantheon
- catacombe
I primi due campi nome_comune e descrizione_comune sono nella tabella comuni, mentre il campo nome_monumento è nella tabella monumenti.
Ho creato una LEFT JOIN delle due tabelle in questo modo:
$sql_comune = "SELECT comuni.*, monumenti.* FROM comuni LEFT JOIN monumenti ON comuni.id = monumenti.id_comune WHERE comuni.id="$comune";
$result = mysql_query("$sql_comune",$link) or die ("errore nel database!");
while ($riga = mysql_fetch_array($result) )
{
$comune_nome = stripslashes($riga['comune']);
$comune_descrizione = stripslashes($riga['descrizione']);
$monumento = stripslashes($riga['monumento']);
echo "<h2>".$comune_nome."</h2><p>".$comune_descrizione."</p><ul><li>$monumento</li></ul>";
}
Il mio problema è che impostando in questo modo ho che il nome del comune e la descrizione vengono stampate un tot di volte corrispondente al numero dei monumenti estratti dalla tabella monumenti. Come posso fare ad ottenere che il tutto venga stampato una sola volta?
Sono alle prime armi con il linguaggio mysql e penso che sia un problema di impostazione di cicli, ma non so dove modificare! Tra l'altro devo unire non solo queste due tabelle ma più tabelle ho semplificato la questione a due tabelle perchè credo che il meccanismo sia lo stesso sia che si tratti di due tabelle e sia che siano più di due.
Ringrazio anticipatamente per l'aiuto
Ad esempio
Roma
E' la capitale di Italia, città situata nella regione lazio ecc. ecc.
Da visitare:
- colosseo
- fontana di Trevi
- pantheon
- catacombe
I primi due campi nome_comune e descrizione_comune sono nella tabella comuni, mentre il campo nome_monumento è nella tabella monumenti.
Ho creato una LEFT JOIN delle due tabelle in questo modo:
$sql_comune = "SELECT comuni.*, monumenti.* FROM comuni LEFT JOIN monumenti ON comuni.id = monumenti.id_comune WHERE comuni.id="$comune";
$result = mysql_query("$sql_comune",$link) or die ("errore nel database!");
while ($riga = mysql_fetch_array($result) )
{
$comune_nome = stripslashes($riga['comune']);
$comune_descrizione = stripslashes($riga['descrizione']);
$monumento = stripslashes($riga['monumento']);
echo "<h2>".$comune_nome."</h2><p>".$comune_descrizione."</p><ul><li>$monumento</li></ul>";
}
Il mio problema è che impostando in questo modo ho che il nome del comune e la descrizione vengono stampate un tot di volte corrispondente al numero dei monumenti estratti dalla tabella monumenti. Come posso fare ad ottenere che il tutto venga stampato una sola volta?
Sono alle prime armi con il linguaggio mysql e penso che sia un problema di impostazione di cicli, ma non so dove modificare! Tra l'altro devo unire non solo queste due tabelle ma più tabelle ho semplificato la questione a due tabelle perchè credo che il meccanismo sia lo stesso sia che si tratti di due tabelle e sia che siano più di due.
Ringrazio anticipatamente per l'aiuto