par
cris84 » 04 avr. 2015, 12:20
Bonjour à tous,
suite à mon dernier message, je voudrais faire une pagination avec la méthode POST.
Ca marche lors de la recherche, les liens de pages en bas sont bien affichées [1] suivant, [2] etc mais quand je clique sur le lien de pagination, c'est page blanche.
En résumé, il y a que la première page que fonctionne, le POST ne marche pas sur les pages suivantes...
Merci de votre aide
Je vous donne mon code :
if( isset($_GET['page']) && is_numeric($_GET['page']) )
$page = $_GET['page'];
else
$page = 1;
$pagination =1;
$limit_start = ($page - 1) * $pagination;
if(empty($_POST['region']))
echo'<br /><font color="red">Merci de choisir une région !</font><br /><br />';
else {
$requete = "SELECT * FROM membre, region, departement as dpt, ville WHERE membre.id_departement=dpt.id_departement and region.id_region=dpt.id_region and membre.id_ville=ville.id_ville and membre.valide=1";
if(empty($_POST['departement']) && empty($_POST['ville']))
$requete .= " and membre.id_region='".$_POST['region']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC LIMIT $limit_start, $pagination";
elseif(empty($_POST['ville']))
$requete .= " and membre.id_departement='".$_POST['departement']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC LIMIT $limit_start, $pagination";
else
$requete .= " and membre.id_departement='".$_POST['departement']."' and membre.id_ville='".$_POST['ville']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC LIMIT $limit_start, $pagination";
$sql = mysqli_query($bdd,$requete)or die(mysqli_error($bdd));
}
while($row=mysqli_fetch_array($sql))
{ le reste du code ... }
$requete = "SELECT COUNT(membre.id) as nb_membre FROM membre, region, departement as dpt, ville WHERE membre.id_departement=dpt.id_departement and region.id_region=dpt.id_region and membre.id_ville=ville.id_ville and membre.valide=1";
if(empty($_POST['departement']) && empty($_POST['ville']))
$requete .= " and membre.id_region='".$_POST['region']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC ";
elseif(empty($_POST['ville']))
$requete .= " and membre.id_departement='".$_POST['departement']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC ";
else
$requete .= " and membre.id_departement='".$_POST['departement']."' and membre.id_ville='".$_POST['ville']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC ";
$page = mysqli_query($bdd,$requete)or die(mysqli_error($bdd));
$donnees = mysqli_fetch_assoc($page);
$nb_total= $donnees['nb_membre'];
$nb_pages = ceil($nb_total / $pagination);
if ($nb_pages > 1) { echo'Allez à la page : ';
if ($page > 1 )
echo " <a href=\"resultat-membre.php?page=".($page-1)."\">Précédent</a> ";
else
echo "Précédent ";
}
$un = 1;
$premier = max(1, $page - $un);
$dernier = min($nb_pages, $page + $un);
if ($premier > 1) {
echo " <a href=\"resultat-membre.php\">[ 1 ]</a> ";
if ($premier > 2) {
echo " ... ";
}
}
for ($i = $premier ; $i <= $dernier ; $i++) {
if ($nb_pages > 1) {
if ($i == $page )
echo "[ $i ]";
else
echo " <a href=\"resultat-membre.php?page=$i\">[ $i ]</a> ";
}
}
if ($dernier < $nb_pages) {
if ($dernier < $nb_pages - 1) {
echo " ... ";
}
echo "<a href=\"resultat-membre.php?page=$nb_pages\">[ $nb_pages ]</a>";
}
?>
<?php
if ($nb_pages > 1) {
if ($page < $nb_pages )
echo " <a href=\"resultat-membre.php?page=".($page+1)."\">Suivant</a> ";
else
echo "Suivant";
}
}
?>
Bonjour à tous,
suite à mon dernier message, je voudrais faire une pagination avec la méthode POST.
Ca marche lors de la recherche, les liens de pages en bas sont bien affichées [1] suivant, [2] etc mais quand je clique sur le lien de pagination, c'est page blanche.
En résumé, il y a que la première page que fonctionne, le POST ne marche pas sur les pages suivantes...
Merci de votre aide
Je vous donne mon code :
[php]if( isset($_GET['page']) && is_numeric($_GET['page']) )
$page = $_GET['page'];
else
$page = 1;
$pagination =1;
$limit_start = ($page - 1) * $pagination;
if(empty($_POST['region']))
echo'<br /><font color="red">Merci de choisir une région !</font><br /><br />';
else {
$requete = "SELECT * FROM membre, region, departement as dpt, ville WHERE membre.id_departement=dpt.id_departement and region.id_region=dpt.id_region and membre.id_ville=ville.id_ville and membre.valide=1";
if(empty($_POST['departement']) && empty($_POST['ville']))
$requete .= " and membre.id_region='".$_POST['region']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC LIMIT $limit_start, $pagination";
elseif(empty($_POST['ville']))
$requete .= " and membre.id_departement='".$_POST['departement']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC LIMIT $limit_start, $pagination";
else
$requete .= " and membre.id_departement='".$_POST['departement']."' and membre.id_ville='".$_POST['ville']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC LIMIT $limit_start, $pagination";
$sql = mysqli_query($bdd,$requete)or die(mysqli_error($bdd));
}
while($row=mysqli_fetch_array($sql))
{ le reste du code ... }
$requete = "SELECT COUNT(membre.id) as nb_membre FROM membre, region, departement as dpt, ville WHERE membre.id_departement=dpt.id_departement and region.id_region=dpt.id_region and membre.id_ville=ville.id_ville and membre.valide=1";
if(empty($_POST['departement']) && empty($_POST['ville']))
$requete .= " and membre.id_region='".$_POST['region']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC ";
elseif(empty($_POST['ville']))
$requete .= " and membre.id_departement='".$_POST['departement']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC ";
else
$requete .= " and membre.id_departement='".$_POST['departement']."' and membre.id_ville='".$_POST['ville']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC ";
$page = mysqli_query($bdd,$requete)or die(mysqli_error($bdd));
$donnees = mysqli_fetch_assoc($page);
$nb_total= $donnees['nb_membre'];
$nb_pages = ceil($nb_total / $pagination);
if ($nb_pages > 1) { echo'Allez à la page : ';
if ($page > 1 )
echo " <a href=\"resultat-membre.php?page=".($page-1)."\">Précédent</a> ";
else
echo "Précédent ";
}
$un = 1;
$premier = max(1, $page - $un);
$dernier = min($nb_pages, $page + $un);
if ($premier > 1) {
echo " <a href=\"resultat-membre.php\">[ 1 ]</a> ";
if ($premier > 2) {
echo " ... ";
}
}
for ($i = $premier ; $i <= $dernier ; $i++) {
if ($nb_pages > 1) {
if ($i == $page )
echo "[ $i ]";
else
echo " <a href=\"resultat-membre.php?page=$i\">[ $i ]</a> ";
}
}
if ($dernier < $nb_pages) {
if ($dernier < $nb_pages - 1) {
echo " ... ";
}
echo "<a href=\"resultat-membre.php?page=$nb_pages\">[ $nb_pages ]</a>";
}
?>
<?php
if ($nb_pages > 1) {
if ($page < $nb_pages )
echo " <a href=\"resultat-membre.php?page=".($page+1)."\">Suivant</a> ";
else
echo "Suivant";
}
}
?>[/php]