Page 156 - Corso di PHP - Livello base
P. 156
conto del fatto che staremo operando su di un array:
$query = "SELECT * FROM Post WHERE IdAutore = 1";
$risultato = mysql_query($query);
while ($record = mysql_fetch_array($risultato, MYSQL_ASSOC))
{
echo "{$record['Titolo']}<br />";
}
Attraverso il nostro while, nel caso dell'esempio, con una
stampa scriviamo nella pagina il titolo dei post che soddisfano
le condizioni poste dal comando SELECT.
Bene, facciamo ora un altro esempio. Supponiamo di voler
scrivere, da qualche parte nella home page del nostro blog, i
titoli dei post accompagnati dal nickname dell'autore. Nella
tabella post il nickname dell'autore degli articoli non è presente:
abbiamo soltanto l'id. Come facciamo quindi a compiere questa
operazione? Dovremo necessariamente unire la tabella Post
con la tabella Autori, per fare in modo che ai campi della
tabella Post vengano anche aggiunti i campi della tabella Autori.
Per fare questo utilizziamo il comando JOIN, ma ci deve essere
una condizione, ovvero la base su cui uniremo le tabelle.
Cosa significa? Significa che dovrà esserci un campo che avrà
gli stessi valori per entrambe le tabelle. Nel nostro caso è il
campo dell'id dell'autore, ovvero IdAutore nella tabella Post e Id
nella tabella Autori: affinché le due tabelle possano essere unite,
ci deve essere una corrispondenza tra IdAutore di Post e Id
di Autori. Questo significa che a tutti i record che hanno un
certo IdAutore verranno abbinati i valori di quei record della
tabella Autori il cui Id è lo stesso di IdAutore.
Nel nostro database l'autore 1 è Federico. Con il comando
JOIN, a tutti i post scritti da Federico memorizzati nella tabella
156