salve questo è il codice
Codice PHP:
switch ($_GET['pag']) {
case 'all':
$query ="SELECT *, date_format(data_ora, 'in data <span class=\"nomeutente\">%d/%m/%Y</span> - <span class=\"nomeutente\">ore %H:%i:%s</span>') as data_formattata FROM commenti WHERE page=$pag order by data_ora DESC";
break;
case 'risptot' && isset($_GET['totrisp']):
$totorisp=$_GET['totrisp'];
$query= "SELECT *, date_format(data_ora, 'in data <span class=\"nomeutente\">%d/%m/%Y</span> - <span class=\"nomeutente\">ore %H:%i:%s</span>') as data_formattata FROM commenti WHERE risp=$totorisp or id=$totorisp ORDER BY id ASC";
break;
default:
include("pagcommenti.php");
$query ="SELECT *, date_format(data_ora, 'Pubblicato il: <span class=\"nomeutente\">%d/%m/%Y</span> - <span class=\"nomeutente\">%H:%i:%s</span>') as data_formattata FROM commenti WHERE page=$pag AND sezione='$sez' order by data_ora DESC LIMIT " . ( ( (int)$pgcomments - 1 ) * $messaggi ) . "," . $messaggi;
break;
}
tramite switch dico al php cosa deve fare quando il pgcomments assume diversi valori.
i casi sono questi
case 1= mostra tutti i commenti
case 2= mostra solo i commenti di risposta a un commento
case 3= mostra i commenti con paginazione
funziona quasi tutto alla perfezione ma quando io scrivo il link senza la variabile get pag non mi mostra più i commenti con paginazione.
cioè la variabile get pag mi serve per fare paginazione ma quando il link si ferma omettendo &pag= non mi mostra i risultati impaginati.
questa istruzione si trova in
include(pagcommenti)
questo il codice
Codice PHP:
$messaggi = 10;
$pagine = ceil ( $n_commenti / $messaggi );
$num=1;
// estraggo i record
if ( empty($pgcomments) or (int)$pgcomments < 1) {
$pgcomments= $num;
}
if ( isset ( $pgcomments ) and (int)$pgcomments > $pagine ) {
$pgcomments = $pagine;
}
$pagcommenti= "<div class=\"tornasu noprint\">";
$startpg= $pgcomments-2;
if($startpg <= 0){
$startpg= 1;
}
$endpg= $pgcomments+2;
if($endpg >= $pagine){
$endpg=$pagine;
}
if ($startpg > 0 and $startpg>$num){
$pagcommenti .= "<a href=\"art.php?art=" . $pag . "&pag=". $num . "#commentare\">Prima</a> | ";
$pagcommenti .= "... ";
}
for ( $i=$startpg; $i <= $endpg; $i++ ) {
if((int)$pgcomments == $i or empty($pgcomments)) {
$pagcommenti .= "<div class=\"pagebox1\">[b]" . $i . "[/b]</div> ";
}
else{
$pagcommenti .="<div class=\"pagebox\"><a href=\"art.php?art=" . $pag . "&pag=" . $i . "#commentare\">" . $i . "</a></div> ";
}
}
if ($endpg > 0 and $endpg < $pagine){
$pagcommenti .= "...";
$pagcommenti .= " | <a href=\"art.php?art=" . $pag . "&pag=" . $pagine . "#commentare\">Ultima</a>";
}
if ($pagine > 1){
$pagcommenti .= " | <a href=\"http://www.atuttascienza.altervista.org/art/art.php?art=" . $pag . "&pag=all#commentare\">Mostra tutti</a>";
}
$pagcommenti .="</div>";
con questa riga
Codice PHP:
$num=1
if ( empty($pgcomments) or (int)$pgcomments < 1) {
$pgcomments= $num;
}
io dicevo che se pgcomments non esiste o assume valori minori di 1 pgcomments forzatamente sarà 1
questo influiva sulla query presente nel default.
volevo aggiungere una cosa.
prima che io modificassi il codice questo funzionava a dovere. sono passato da if else a switch perchè mi sembrava molto più pratico e ordinato