pagination avec récupération de données via formulaire

Petit nouveau ! | 3 Messages

05 mars 2016, 18:14

Bonjour,

Au début du code je récupère les données de mon formulaire, je me connecte biensur à la BDD, je trie, ensuite j'affiche les résultats mais cela marche seulement pour la première page.
Quelqu'un pourrait il m'expliquer clairement comment modifier mon code de pagination pour pouvoir récupérer mes résultats en page 2, 3 ,4 etc...
Je sais qu'il faut que je réinsère mes $GET dans la pagination mais je ne sais pas comment faire et cela fait 3 jours que je galère.
Merci infiniment
<?php
$agemin = isset($_POST['agemin']) ? $_POST['agemin'] : ( !empty($_GET['agemin']) ? $_GET['agemin'] : '') ;  // récupération des données du champs de recherche
$agemax = isset($_POST['agemax']) ? $_POST['agemax'] : ( !empty($_GET['agemax']) ? $_GET['agemax'] : '') ;  // récupération des données du champs de recherche
$taimin = isset($_POST['taimin']) ? $_POST['taimin'] : ( !empty($_GET['taimin']) ? $_GET['taimin'] : '') ;  // récupération des données du champs de recherche
$taimax = isset($_POST['taimax']) ? $_POST['taimax'] : ( !empty($_GET['taimax']) ? $_GET['taimax'] : '') ;  // récupération des données du champs de recherche
$poimin = isset($_POST['poimin']) ? $_POST['poimin'] : ( !empty($_GET['poimin']) ? $_GET['poimin'] : '') ;  // récupération des données du champs de recherche
$poimax = isset($_POST['poimax']) ? $_POST['poimax'] : ( !empty($_GET['poimax']) ? $_GET['poimax'] : '') ;  // récupération des données du champs de recherche
$enfant = isset($_POST['enfant']) ? $_POST['enfant'] : ( !empty($_GET['enfant']) ? $_GET['enfant'] : '') ;  // récupération des données du champs de recherche
$statut = isset($_POST['statut']) ? $_POST['statut'] : ( !empty($_GET['statut']) ? $_GET['statut'] : '') ;  // récupération des données du champs de recherche
$cheveux = isset($_POST['cheveux']) ? $_POST['cheveux'] : ( !empty($_GET['cheveux']) ? $_GET['cheveux'] : '') ;  // récupération des données du champs de recherche
$yeux = isset($_POST['yeux']) ? $_POST['yeux'] : ( !empty($_GET['yeux']) ? $_GET['yeux'] : '') ;  // récupération des données du champs de recherche
$ville = isset($_POST['ville']) ? $_POST['ville'] : ( !empty($_GET['ville']) ? $_GET['ville'] : '') ;  // récupération des données du champs de recherche


?>

<?php
$perPage = 12; // resultats max par page

$req = $db->query("SELECT COUNT(*) AS total  FROM profils WHERE enfant = '$enfant' AND age BETWEEN (curdate() - interval '$agemax' year) AND (curdate() - interval '$agemin' year) AND taille BETWEEN '$taimin' AND '$taimax' AND poids BETWEEN '$poimin' AND '$poimax' AND statut = '$statut' AND cheveux = '$cheveux' AND yeux = '$yeux' AND ville = '$ville'");
$result = $req->fetch();
$total = $result['total'];?>

<div id="box-right-catalogue"> 
<h1 style="font-size: 26px">TROUVER VOTRE <font color="#5990b0">BELLE FEMME SLAVE</font></h1> </br> 
<h2> Voici les femmes correspondant à vos critères de recherche -  il y a <b><?php echo $total ?></b> profil(s).</h2>

<?php $nbPage = ceil($total/$perPage);

if(isset($_GET['page']) && !empty($_GET['page']) && ctype_digit($_GET['page']) == 1){
    if ($_GET['page'] > $nbPage) {
      $page = $nbPage;
    }else{
      $page = $_GET['page'];
    }

}else{

  $page = 1;
}

$first = ($page-1)*$perPage;


$reponse = $db->query("SELECT * FROM profils WHERE enfant = '$enfant' AND age BETWEEN (curdate() - interval '$agemax' year) AND (curdate() - interval '$agemin' year) AND taille BETWEEN '$taimin' AND '$taimax' AND poids BETWEEN '$poimin' AND '$poimax' AND statut = '$statut' AND cheveux = '$cheveux' AND yeux = '$yeux' AND ville = '$ville' ORDER BY age DESC LIMIT $first, $perPage" );
while ($donnees = $reponse->fetch())
{
?>

  <div class="box-cadre-catalogue">
<img src="profils/<?php echo $donnees['photo']; ?>" class="photo1-catalogue" width="219" height="330">
<?php echo "<a href='".$donnees['lien']."'>"; ?> <img src="images/1cadre.png"class="cadre1-catalogue"></a>
<p class="prenom-catalogue"><?php echo $donnees['prenom']; ?> 
                            <?php  echo ageCalculator($donnees['age']);?> ans</p>
                                

</div>

<?php }  ?>  

<!-- *********** PAGINATION ************* ************* PAGINATION **************-->

<div class="numeros-pages">
<ul id="pagination">

<?php

if ($page > 1):
    ?><li><a href="?page=<?php echo $page - 1; ?>">Précédent</a></li> <?php
endif;

for ($i = 1; $i <= $nbPage; $i++):
      if($i == $page){
    ?><li class="active"><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a></li> 
    <?php
  }

  else{
    ?>
        <li><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a></li><?php  }

endfor;
if ($page < $nbPage):
    ?> <li><a href="?page=<?php echo $page + 1 ; ?>">Suivant</a></li><?php
endif;
?>
</ul>
</div>
</div>
</div>