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 ) * $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){
$startpg1;
}
$endpg$pgcomments+2;
if(
$endpg >= $pagine){
$endpg=$pagine;
}

if (
$startpg and $startpg>$num){
$pagcommenti .= "<a href=\"art.php?art=" $pag "&amp;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 "&amp;pag=" $i "#commentare\">" $i "</a></div> ";
}
}
if (
$endpg and $endpg $pagine){
$pagcommenti .= "...";
$pagcommenti .= " | <a href=\"art.php?art=" $pag "&amp;pag=" $pagine "#commentare\">Ultima</a>";
}
if (
$pagine 1){
$pagcommenti .= " | <a href=\"http://www.atuttascienza.altervista.org/art/art.php?art=" $pag "&amp;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