Problema di Indice e Paginazione

giusalvo

Nuovo Utente
14 Ago 2012
25
1
3
MS
Ciao,
di solito la paginazione mi funziona quando devo utilizzarla ma in questo caso, usandola con un indice non mi divide i risultati in pagine. Cioè mi spara il risultato su un unica pagina e poi mi segnala che ci sono n pagine che naturalmente se ci clicco sopra, sono vuote...
Posto il codice se qualcuno può farmi capire dove sbaglio...

PHP:
<?php
for ($i=65;$i<91;$i++)
{
echo "<a href=\"index.php?lettera=".chr($i)."\">".chr($i)."</a>"." ";
}
echo "
";
if (!isset($_GET['lettera']))
$lettera ="a";
else
$lettera = $_GET['lettera'];

$all = mysql_query("SELECT COUNT(*)FROM indipec WHERE nominativo LIKE '$lettera%'");
$res_count = mysql_fetch_row($all);
$tot_records = $res_count[0];
$per_page = 10;

$tot_pages = ceil($tot_records / $per_page);
if(isset($_GET['page']))
$current_page =$_GET['page'];
else
$current_page= 1;
$primo = ($current_page - 1) * $per_page;

?>
<p>
</table>
<table border="0" width="95%" cellspacing="3" cellpadding="3" align="center">
<tr bgcolor="#F0E68C">
<td align="center"><b>Nominativo</b></td>
<td align="center"><b>Visualizza</b></td>
<td align="center"><b>Indirizzo Pec</b></td>
<td align="center"><b>Note</b></td>
</tr>

<?php
$v=0;
$query = mysql_query("SELECT * FROM indipec WHERE nominativo LIKE '$lettera%'ORDER BY nominativo")
 or die(mysql_error());
while($row = mysql_fetch_array($query)){
if($v%2==0)$color ="FFFACD";
else $color="F5FFFA";

$nominativo = $row['nominativo'];
$visual = $row['visual'];
$indipec = $row['indipec'];
$note = $row['note'];

echo "<tr bgcolor= $color>";?>
<td><?php echo($nominativo);?></td>
<td><?php echo($visual);?></td>
<td><a href="mailto:<?php echo($indipec);?>"><?php echo ($indipec);?></td>
<td><?php echo($note);?></td>
  </tr>
  <?php
  $v++;
}
include ("paginazione.php");
?>
<tr>
<td bgcolor="FFFFF" colspan="5" valign="bottom" align="center"><?php echo $paginazione; ?></td>
</tr>
</table>

Grazie!
Salvo
 
Ultima modifica di un moderatore:
Ciao,
grazie per avermi risposto , ma c'è ancora qualcosa che non torna.
Se metto il LIMIT, vedo la prima pagina e, sotto, il nr delle pagine totali; ma se clicco su pagina 2 è vuota

PHP:
<?php
for ($i=65;$i<91;$i++)
{
echo "<a href=\"index.php?lettera=".chr($i)."\">".chr($i)."</a>"." ";
}
echo " ";
?>
</font>
</div>
<?php

if (!isset($_GET['lettera']) or $_GET['lettera']=="")
    $lettera = "a";
    else
    $lettera = $_GET['lettera'];

$all = mysql_query("SELECT COUNT(*) FROM indipec WHERE nominativo LIKE '$lettera%'");
$res_count = mysql_fetch_row($all);
$tot_records = $res_count[0];
$per_page = 10;

$tot_pages = ceil($tot_records / $per_page);
if(isset($_GET['page']))
$current_page =$_GET['page'];
else
$current_page= 1;


?>

<p>
</table>
<table border="0" width="95%" cellspacing="3" cellpadding="3" align="center">
<tr bgcolor="#F0E68C">
<td align="center"><b>Nominativo</b></td>
<td align="center"><b>Visualizza</b></td>
<td align="center"><b>Indirizzo Pec</b></td>
<td align="center"><b>Note</b></td>
</tr>

<?php

$v=0;
$query = mysql_query("SELECT * FROM indipec WHERE nominativo LIKE '$lettera%'ORDER BY nominativo LIMIT $tot_pages, $per_page")
 or die(mysql_error());
while($row = mysql_fetch_array($query)){
if($v%2==0)$color ="FFFACD";
else $color="F5FFFA";

$nominativo = $row['nominativo'];
$visual = $row['visual'];
$indipec = $row['indipec'];
$note = $row['note'];

echo "<tr bgcolor= $color>";?>
<td><?php echo($nominativo);?></td>
<td><?php echo($visual);?></td>
<td><a href="mailto:<?php echo($indipec);?>"><?php echo ($indipec);?></td>
<td><?php echo($note);?></td>
  </tr>
  <?php
  $v++;
}
include ("paginazione.php");
?>
<tr>
<td bgcolor="FFFFF" colspan="5" valign="bottom" align="center"><?php echo $paginazione; ?></td>
</tr>
</table>

puoi dirmi cosa c'è che ancora non va? ho fatto diverse prove, ma il risultato non cambia!
Grazie
 
Nel limit al posto di $tot_pages devi mettere $partenza che prima definisci come $per_page*$_GET[page]

Inviato dal mio GT-S5360 con Tapatalk 2
 

Discussioni simili