Page 157 - Corso di PHP - Livello base
P. 157
Post e contrassegnati, ovviamente, con l'IdAutore uguale a 1,
saranno affiancati i record della tabella Autori il cui Id è uguale
a 1.
Vediamo quindi la sintassi:
$query = "SELECT * FROM Post JOIN Autori ON Post.IdAutore = Autori.Id";
$risultato = mysql_query($query);
Quindi subito dopo il nome della tabella inseriamo il comando
JOIN seguito dal nome della tabella da unire. Inseriamo poi
la clausola ON seguita dai due campi delle tabelle che devono
corrispondere tra di loro: nel nostro caso IdAutore per quanto
riguarda Post e Id per quanto riguarda Autori. Deve essere
scritto prima il nome della tabella, quindi, dopo un punto, il
nome del campo (tabella.campo).
Per stampare i risultati il metodo è ancora quello di prima:
while ($record = mysql_fetch_array($risultato, MYSQL_ASSOC))
{
echo "{$record['Titolo']}, scritto da {$record['Nickname']}<br />";
}
Supponiamo ora di voler stampare sia davanti al post che
davanti all'autore il rispettivo id. Per esempio in questa forma:
“Post numero 2: Ciao a tutti!!!, scritto da FedericoG (autore
numero 1)”. Se scrivessimo una cosa del genere:
echo "Post numero {$record['Id']}: {$record['Titolo']}, scritto da {$record['Nickname']}
(autore numero {$record['Id']})<br />";
Ovviamente non otterremmo il risultato sperato, perché ci sono
due campi che hanno lo stesso nome (Id), e quando succede
questo viene preso il campo Id dell'ultima tabella presa in
157