Problemi con la paginazione

di il
1 risposte

Problemi con la paginazione

Raga mi serve il vostro aiuto!
In pratica ho la paginazione impostata a 4 risultati per pagina e devo portarla a 8 per pagina.
Ho fatto un pò di prove ma ho ottenuto due risultati: o mi compaiono 8 risultati ma impaginati male oppure pagina bianca...
Questo è il codice funzionante con 4 risultati:

<?php

$recordxpag = 4;
$query = "SELECT * FROM consigli WHERE categoria = '$categoria_consiglio' ORDER BY ID_Consiglio DESC";

//interrogazione del database:
//quale che sia la vostra query avremo una situazione del genere:

$res = mysql_query($query);

$righe = mysql_num_rows($res);
$numpag = ceil($righe/$recordxpag);


/*
Create una classe di stile chiamata "selected" e assegnatele un
colore diverso da quello dei normali link, sarà usato per indicare la pagina corrente nel minimenu' dei link.
*/

//inizializzo come stringa vuota una variabile querystring che
//appendo sempre ai miei link

$querystring = "&categoria_consiglio=$categoria_consiglio";

//numero di link da visualizzare
$n=4;

#tutto il codice seguente non richiede configurazioni <img src="images/smilies/smile.gif" border="0" alt="">
$pag = isset($_GET['pag'])? $_GET['pag'] : $HTTP_GET_VARS['pag'];

if (!isset($pag)) $pag = 1;


//moltiplicando il numero di record per pagina, per la pagina
//precedente, otteniamo il numero di record finora mostrati,
//quindi quello da cui partire nella pagina corrente
$da = (($pag-1) * $recordxpag);

//non credo ci siano difficoltà: il limite destro del nostro
//intervallo, sarà il limite sinitro incrementato dell'intervallo stesso
$a = $da + $recordxpag;

//quest'ultima condizione serve a dire allo script che se
//nell'ultima pagina ci fossero meno record di quelli da visualizzare
//si deve limitare all'ultimo record dispobnibile.
//tradotto in algoritmo: se il limite destro dell'intervallo, va
// oltre il numero dei record, poni il limite destro uguale al
// numero dei record


//Le seguenti righe dicono allo script di prendere i primi quattro record degli 8 selezionati

if ($righe <=2) {
$da_first = 0;
$a_first = $righe;
$da_second = 0;
$a_second = 0;
} elseif (($righe > 2) AND ($righe <=4)) {
$da_first = 0;
$a_first = 2;
$da_second = 2;
$a_second = $righe;
} else {
if (($a > $righe))
{
$a = $righe;
$a_first = $a;
} else {
$a_first = $a - 2;
}
$da_first = $da;
$a_second = $a_first + 2;
$da_second = $da_first + 2;
if ($da_second >= $righe) {
$a_second = 0;
$da_second = 0;
}
}

$count_first=0;
$count_second=0;
for ($i = $da_first; $i < $a_first; $i++)
{
if($i<$righe && $count_first<2)
{
$count_first++;

$ID_Consiglio = mysql_result($res,$i,'ID_Consiglio');
$titolo = mysql_result($res, $i, 'Titolo');
$descrizione = mysql_result($res, $i, 'descrizione');
$corpo = mysql_result($res, $i, 'corpo');
$corpo2 = mysql_result($res, $i, 'corpo2');
$foto = mysql_result($res, $i, 'foto');
$chars = array(":", "-" , "?", "'", ".", '"');
?>



<td width="25%" align="center" valign="middle">
<!-- classe div per po-up !-->
<div align="center">
<!--<div class="highslide-html-content" id="<? echo $ID_Consiglio; ?>">
<div class="highslide-header">
<ul>
<li><a class="control" onclick="return hs.getExpander(this).printHtml()" href="#">Stampa</a></li>
<li class="highslide-close"><a href="#" onclick="return false" class="highslide-move control">Sposta</a></li>
<li class="highslide-close"><a href="#" onclick="return hs.close(this)">Chiudi</a></li>
</ul>
</div>
<div class="highslide-body">
<img src="<?php echo IMAGE_DIR_CONSIGLI; ?>/<?php echo $corpo; ?>" alt="Apri" />
<?php if($corpo2 != ""){ ?><br /><img src="<?php echo IMAGE_DIR_CONSIGLI; ?>/<?php echo $corpo2; ?>" alt="Apri" /><?php } ?>
</div>
<div class="highslide-footer">
<div><span class="highslide-resize" title="Resize"> <span></span></span></div>
</div>
</div>-->
<table width="300" border="0" cellspacing="2" cellpadding="2">
<tr>
<!--<td width="90" align="center"><a href="#" class="consigli" onclick="return hs.htmlExpand(this, { contentId: '<? echo $ID_Consiglio; ?>' } )" ><img src="<?php echo IMAGE_DIR_CONSIGLI; ?>/<?php echo $foto; ?>" alt="Apri" border="0" /></a> <div align="center"><br />
</div></td>
<td width="196" align="left" valign="top"><div class="descrizione_banner"><a href="#" onclick="return hs.htmlExpand(this, { contentId: '<? echo $ID_Consiglio; ?>' } )" class="descrizione_banner"><?php echo $titolo; ?></a></div><a href="#" onclick="return hs.htmlExpand(this, { contentId: '<? echo $ID_Consiglio; ?>' } )" class="descrizione2_banner"><?php echo $descrizione; ?></a></td>-->
<td width="90" align="center"><a href="<? echo $ID_Consiglio; ?>-<? echo str_replace(" ", "-", str_replace($chars, "", $titolo)); ?>" class="consigli" ><img src="<?php echo IMAGE_DIR_CONSIGLI; ?>/<?php echo $foto; ?>" alt="Apri" border="0" /></a> <div align="center"><br />
</div></td>
<td width="196" align="left" valign="top"><div class="descrizione_banner"><a href="<? echo $ID_Consiglio; ?>-<? echo str_replace(" ", "-", str_replace($chars, "", $titolo)); ?>" class="descrizione_banner"><?php echo $titolo; ?></a></div><a href="<? echo $ID_Consiglio; ?>-<? echo str_replace(" ", "-", str_replace($chars, "", $titolo)); ?>" class="descrizione2_banner"><?php echo substr($descrizione, 0, 222); ?>...</a></td>
</tr>
</table>
</div></td>

<?php } }?>


</tr>
<tr>
<td colspan="4" align="center" valign="middle"><p>&nbsp;</p>

</td>
</tr>

<!-- SECONDA RIGA -->

<tr>
<?php

for ($i = $da_second; $i < $a_second; $i++)
{
if($i<$righe && $count_second<2)
{
$count_second++;
$ID_Consiglio = mysql_result($res,$i,'ID_Consiglio');
$titolo = mysql_result($res, $i, 'Titolo');
$descrizione = mysql_result($res, $i, 'descrizione');
$corpo = mysql_result($res, $i, 'corpo');
$corpo2 = mysql_result($res, $i, 'corpo2');
$foto = mysql_result($res, $i, 'foto');
?>
<td width="25%" align="center" valign="middle">
<div align="center">
<!--<div class="highslide-html-content" id="<? echo $ID_Consiglio; ?>">
<div class="highslide-header">
<ul>
<li><a class="control" onclick="return hs.getExpander(this).printHtml()" href="#">Stampa</a></li>
<li class="highslide-close"><a href="#" onclick="return false" class="highslide-move control">Sposta</a></li>
<li class="highslide-close"><a href="#" onclick="return hs.close(this)">Chiudi</a></li>
</ul>
</div>
<div class="highslide-body">
<img src="<?php echo IMAGE_DIR_CONSIGLI; ?>/<?php echo $corpo; ?>" alt="Apri" />
<?php if($corpo2 != ""){ ?><br /><img src="<?php echo IMAGE_DIR_CONSIGLI; ?>/<?php echo $corpo2; ?>" alt="Apri" /><?php } ?>
</div>
<div class="highslide-footer">
<div><span class="highslide-resize" title="Resize"> <span></span></span></div>
</div>
</div>-->
<table width="300" border="0" cellspacing="2" cellpadding="2">
<tr>
<!--<td width="90" align="center"><a href="#" class="consigli" onclick="return hs.htmlExpand(this, { contentId: '<? echo $ID_Consiglio; ?>' } )" ><img src="<?php echo IMAGE_DIR_CONSIGLI; ?>/<?php echo $foto; ?>" alt="Apri" border="0" /></a> <div align="center"><br />
</div></td>
<td align="left" valign="top"><div class="descrizione_banner"><a href="#" onclick="return hs.htmlExpand(this, { contentId: '<? echo $ID_Consiglio; ?>' } )" class="descrizione_banner"><?php echo $titolo; ?></a></div>
<a href="#" onclick="return hs.htmlExpand(this, { contentId: '<? echo $ID_Consiglio; ?>' } )" class="descrizione2_banner">><?php echo $descrizione; ?></a></td>
-->
<td width="90" align="center"><a href="<? echo $ID_Consiglio; ?>-<? echo str_replace(" ", "-", str_replace($chars, "", $titolo)); ?>" class="consigli" ><img src="<?php echo IMAGE_DIR_CONSIGLI; ?>/<?php echo $foto; ?>" alt="Apri" border="0" /></a> <div align="center"><br />
</div></td>
<td align="left" valign="top"><div class="descrizione_banner"><a href="<? echo $ID_Consiglio; ?>-<? echo str_replace(" ", "-", str_replace($chars, "", $titolo)); ?>" class="descrizione_banner"><?php echo $titolo; ?></a></div>
<a href="<? echo $ID_Consiglio; ?>-<? echo str_replace(" ", "-", str_replace($chars, "", $titolo)); ?>" class="descrizione2_banner"><?php echo substr($descrizione, 0, 222); ?>...</a></td>
</tr>
</table>
</div></td>

<?php } }?>
</tr>

<!-- FINE SECONDA RIGA -->

Cosa devo modificare? Grazie per l'aiuto!

1 Risposte

  • Re: Problemi con la paginazione

    Dunque questo script, che immagino non hai fatto tu visto il numero di commenti, utilizza ben 3 modi diversi per indicare il numero delle pagine:
    -All'inizio lo immagazzina in $recordxpag;
    -A un certo punto lo mette in $n (commentando ampiamente che si tratta del numero di record per pagina);
    -Alla fine dello script scrive
    } elseif (($righe > 2) AND ($righe <=4)) {
    , per cui non usa nessuna delle 2 variabili inizializzate prima.

    Nel dubbio ti consiglio di metterci una pezza cambiando 4 con 8 in tutti e tre i punti segnalati; un passo ulteriore potrebbe essere impostare un unica variabile e usarla anche nel 3° punto.
Devi accedere o registrarti per scrivere nel forum
1 risposte