Page 165 - Corso di PHP - Livello base
P. 165

$risultato6 = mysql_query($query6);
                Fino  al  WHERE  quindi  niente  di  strano:  dopo  l'uguale  però
                inseriamo un nuovo comando SELECT, che dovrà estrarre il

                numero massimo di commenti presenti in un post. La query
                “più grande” estrarrà quindi il titolo il cui numero di commenti

                sarà  uguale  al  massimo  numero  di  commenti  per  un  post
                presenti  nel  nostro  database.  Stampiamo  poi  molto
                semplicemente così:



                 while ($record6 = mysql_fetch_array($risultato6, MYSQL_ASSOC))
                 {
                    echo "Post con il maggior numero di commenti: "; echo $record6['Titolo'];

                 }


                Ripetiamo  la  stessa  cosa  anche  per  conoscere  il  post  con  il
                minor numero di commenti. Possiamo poi creare dei comandi
                SELECT  che  estraggono  informazioni  dai  risultati  di  altri

                comandi SELECT, come in questo caso:


                 $query = "SELECT * FROM (SELECT * FROM Post WHERE Id > 5) AS PrimaSelect
                 WHERE NumCommenti > 6";
                 $risultato = mysql_query($query);


                Che è una complicazione inutile in quanto avremmo ottenuto lo
                stesso risultato con un solo comando SELECT, ma è utile per

                capire  il  meccanismo  delle  query  annidate.  In  questo  caso
                selezioniamo tutti i risultati tratti a loro volta dai risultati di una

                prima  selezione,  che  dovrà  obbligatoriamente  essere  nominata
                (AS PrimaSelect), altrimenti la query non funzionerà e ci sarà

                un errore. La prima selezione, quella interna, estrae tutti i record
                dalla tabella Post che hanno un id maggiore di 5, e da questa
                selezione,  il  comando  SELECT  principale  estrae  i  post  che

                hanno più di sei commenti.


                A conclusione del capitolo, come sempre, un esercizio: create




                                                          165
   160   161   162   163   164   165   166   167   168   169   170