Nella homepage del blog, oltre alle anteprime dei post, sarà disponibile anche il risultato del conteggio dei commenti relativi ad ogni articolo; questo sarà possibile grazie ad una piccola funzione basata sull'istruzione Sql SELECT COUNT
:
Si analizzi il funzionamento del codice appena proposto: la funzione accetta come parametri 6 argomenti simboleggiati da altrettante variabili:
- $id_c
- $tbl
- $campo
- $id_post
- $enum
- $valore_enum
Sulla base di questi parametri sarà possibile eseguire una chiamata alla funzione conta_commenti()
direttamente dalla homepage del sito Web:
Sarà quindi eseguita una query che conterà tutti i valori relativi al campo id_commento commenti id_post approvato
SELECT COUNT(id_commento) AS n_commenti from commenti WHERE id_post = 2 AND approvato = '1';
n_commenti
A questo punto, il discorso relativo alla gestione dei commenti può ritenersi concluso, manca soltanto la parte che concerne la visualizzazione dei commenti per ogni articolo il cui codice dovrà essere inserito nella pagina destinata a mostrare il testo integrale dei singoli post; ciò sarà possibile attraverso una semplice query di selezione:
// estrazione dei commenti $post_commenti=$data->query("SELECT autore_commento,testo_commento,data_commento FROM commenti WHERE id_post = $id_post AND approvato='1' ORDER BY data_commento DESC"); if(mysql_num_rows($post_commenti) > 0){ echo "<ul>n"; while($commenti_obj = $data->estrai($post_commenti)) { $autore_commento = stripslashes($commenti_obj->autore_commento); $testo_commento = stripslashes($commenti_obj->testo_commento); $data_commento = stripslashes($commenti_obj->data_commento); echo "<li>n "; echo "Autore: " . $autore_commento . " Scritto il ". $data->format_data($data_commento) . "n"; echo "<br />n"; echo "Commento: " . $testo_commento; echo "</li>n "; } echo "</ul>n"; }else{ echo "Nessun commento per questo post"; }
Il listato esposto esegue un'interrogazione sulla base dell'identificativo univoco relativo al post visualizzato: (SELECT … FROM commenti WHERE id_post = $id_post
AND approvato = '1'
ORDER BY data_commento DESC