Ciao,
ho un piccolo problema con uno script di pagination.
Lo script funziona bene, ma quando voglio far passare dei valori attraverso un form di ricerca mi mostra solo i risultati della prima pagina, mentre le altre no.
Se in questa query inserisco il valore manualmente funziona:
ma se invece invio lo stesso valore attraverso un semplice form con metodo post mi mostra solo la prima pagina di ricerca mentre le altre no
Qui di seguito allego tutto lo script...è pronto per l'uso. Sapreste darmi una mano? Grazie.
ho un piccolo problema con uno script di pagination.
Lo script funziona bene, ma quando voglio far passare dei valori attraverso un form di ricerca mi mostra solo i risultati della prima pagina, mentre le altre no.
Se in questa query inserisco il valore manualmente funziona:
PHP:
$tableName="user";
$query = "SELECT COUNT(*) as num FROM $tableName WHERE userNat = 'it'";
ma se invece invio lo stesso valore attraverso un semplice form con metodo post mi mostra solo la prima pagina di ricerca mentre le altre no
PHP:
$userNat = mysql_escape_string($_POST['nazione']);
$tableName="user";
$query = "SELECT COUNT(*) as num FROM $tableName WHERE userNat = '$userNat'";
Qui di seguito allego tutto lo script...è pronto per l'uso. Sapreste darmi una mano? Grazie.
PHP:
<?php
include 'db_connection.php';
$userNat = mysql_escape_string($_POST['nazione']);
$tableName="user";
$targetpage = "index.php";
$limit = 3;
$query = "SELECT COUNT(*) as num FROM $tableName WHERE userNat = '$userNat'";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
$stages = 3;
$page = mysql_escape_string($_GET['page']);
if($page){
$start = ($page - 1) * $limit;
}else{
$start = 0;
}
// Get page data
$query1 = "SELECT * FROM $tableName WHERE userNat = '$userNat' LIMIT $start, $limit";
$result = mysql_query($query1);
// Initial page num setup
if ($page == 0){$page = 1;}
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total_pages/$limit);
$LastPagem1 = $lastpage - 1;
$paginate = '';
if($lastpage > 1)
{
$paginate .= "<div class='paginate'>";
// Previous
if ($page > 1){
$paginate.= "<a href='$targetpage?page=$prev'>previous</a>";
}else{
$paginate.= "<span class='disabled'>previous</span>"; }
// Pages
if ($lastpage < 7 + ($stages * 2)) // Not enough pages to breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
}
elseif($lastpage > 5 + ($stages * 2)) // Enough pages to hide a few?
{
// Beginning only hide later pages
if($page < 1 + ($stages * 2))
{
for ($counter = 1; $counter < 4 + ($stages * 2); $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
$paginate.= "...";
$paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
$paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
}
// Middle hide some front and some back
elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2))
{
$paginate.= "<a href='$targetpage?page=1'>1</a>";
$paginate.= "<a href='$targetpage?page=2'>2</a>";
$paginate.= "...";
for ($counter = $page - $stages; $counter <= $page + $stages; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
$paginate.= "...";
$paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
$paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
}
// End only hide early pages
else
{
$paginate.= "<a href='$targetpage?page=1'>1</a>";
$paginate.= "<a href='$targetpage?page=2'>2</a>";
$paginate.= "...";
for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
}
}
// Next
if ($page < $counter - 1){
$paginate.= "<a href='$targetpage?page=$next'>next</a>";
}else{
$paginate.= "<span class='disabled'>next</span>";
}
$paginate.= "</div>";
}
echo $total_pages.' Results';
// pagination
echo $paginate;
?>
<ul>
<?php
while($row = mysql_fetch_array($result))
{
echo '<li>'.$row['userName'].'</li>';
}
?>
</ul>