Bonjour, j'ai un petit problème avec ma pagination, mon code fonctionne presque mais pas tout à fait !
Voilà ce que je veux faire:
j'ai une petit formulaire de recherche déroulant, une fois sélectionner l'endroit où on veut chercher, j'obtiens x nombre de réponses, je veux faire afficher le nombre de réponses trouvées d'une part et afficher 3 réponses par page d'autre part.
Ce que j'arrive à faire:J'obtiens bien le nombres de réponses par page souhaité (ici 3 ), j'obtiens bien le nombre de page possible en dessous mais le nombre de réponses trouvée qu'il affiche se limite au nombre de résultats par page (3 hors il en trouve en fait 6) bien que le nombre de page est exacte (ici 2), de plus lorsque je clique sur la page suivante, il m'affiche une page vide et pas les résultats qui suivent.
Voici mon code:<?php
if (isset($_POST['rechercher']))
{
mysql_connect("localhost", "root", "mysql");
mysql_select_db("basededonnees");
$q=$_POST['rechercher'];
switch($_POST['choix'])
{
case "commune": $choix = "commune";
break;
case "cp": $choix = "cp";
break;
case "nom": $choix = "nom";
break;
case "type_activite": $choix = "type_activite";
break;
// On vérifie toutes les possibilités, pour ne pas pouvoir chercher dans des champs non autorisés.
}
if ($q == '')
{
echo 'Veuillez entrez votre recherche svp <br/>';
}
else
{
$messageparpage=3;
$retour_total= mysql_query ("SELECT COUNT(*) AS total from recherche WHERE $choix LIKE '%$q%'") or die (mysql_error()); //va chercher toutes les données qui se trouve la table annonce
$donnees_total=mysql_fetch_assoc($retour_total);
$total=$donnees_total['total'];
$nombredepages=ceil($total/$messageparpage);
if(isset($_GET['page']))
{
$pageactuelle=intval($_GET['page']);
if($pageactuelle>$nombredepages)
{
$pageactuelle=$nombredepages;
}
}
else
{
$pageactuelle=1;
}
$premiereentree=($pageactuelle-1)*$messageparpage;
//$sql = "SELECT * FROM recherche WHERE $choix LIKE '%$q%'"; // On recherche dans la base séléctionnée
$req=mysql_query("SELECT * FROM recherche WHERE $choix LIKE '%$q%' ORDER BY id DESC LIMIT ".$premiereentree.','.$messageparpage.'');
//$req = mysql_query($d) or die(mysql_error());
mysql_close();
echo "<br/><br/>";
while ($d = mysql_fetch_assoc($req))
{
?>
<div class="image_nom">
<div class="nom">
<?php echo $d['nom']; ?>
</div> <!--fermeture di nom-->
<div class="image">
<img class="image1_1" src="<?php echo $d['image1']; ?>" alt="image" />
</div> <!--dermeture div image-->
</div> <!--fermeture div image nom-->
<div class="coordonee">
<p>
<b>Adresse:</b>
</p>
<p>
<?php echo $d['adresse'] ?>
<br/>
<?php echo $d['cp'] ?>
<?php echo $d['commune'] ?>
</p>
<p>
<b>Tel:</b> <?php echo $d['tel'] ?>
<b>Fax:</b> <?php echo $d['fax'] ?>
</p>
<p>
<b>E-mail:</b> <?php echo $d['mail'] ?>
</p>
</div> <!--fermeture coordonee-->
<div class="sous_descriptif">
<a title="clic pour plus d'info" href="#" onclick="description1(<?php echo $d['id'];?>); return false;" style="color:#525253; margin-left: 25px;">Plus d'info</a>
</div> <!--fermeture sous_descriptif-->
<div class="deco">
<div id="cadre1<?php echo $d['id'];?>" style="display:none; border:3px solid #fff; padding: 5px;" >
<div class="image2"> <a href="<?php echo $d['image2']; ?>" rel="lightbox"><img class="image2_2" src="<?php echo $d['image2']; ?>" title="clic pour agrandir" alt="image" /></a>
<p><?php echo $d['texte'];?></p>
</div> <!--fermeture div image2-->
<div class="texte_fin"><br/><br/>
<strong>Horaire</strong><br/>
<?php echo $d['horaires'];?><br/><br/>
<div class="image_deco">
<a href="<?php echo $d['image3']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image3']; ?>" title="clic pour agrandir" alt="image" /></a>
<a href="<?php echo $d['image4']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image4']; ?>" title="clic pour agrandir" alt="image" /></a>
<a href="<?php echo $d['image5']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image5']; ?>" title="clic pour agrandir" alt="image" /></a>
<a href="<?php echo $d['image6']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image6']; ?>" title="clic pour agrandir" alt="image" /></a>
<a href="<?php echo $d['image7']; ?>" rel="lightbox"> <img class="image2_3" src="<?php echo $d['image7']; ?>" title="clic pour agrandir" alt="image" /></a>
<br/>
</div> <!--fermeture div image deco-->
</div> <!--fermeture div texte fin-->
</div> <!--fermeture div cadre1-->
</div> <!--fermeture div deco-->
<?php
}
echo '<p class="page" style="text-align: center;">Page : ';
for($i=1; $i<=$nombredepages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageactuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="test.php?page='.$i.'" style="color:#7b7a7a;">'.$i.'</a> ';
}
}
echo '</p>';
}
}
?>
Voilà si quelqu'un peut m'aider car ça fait 4 jours que je cale là-dessus, j'ai beau lire et relire les tuto et explications sur le sujet, je ne trouve que la réponse pour une pagination simple et pas pour une pagination dans un résultat de recherche.....c'est là le problème (pour une pagination simple je n'ai pas de soucis)

Je vous remercie d'avance pour vos réponses, bonne journée à tous
