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
   152   153   154   155   156   157   158   159   160   161   162