Pagination à partir d'un formulaire

Signaler
Messages postés
2
Date d'inscription
samedi 18 juin 2016
Statut
Membre
Dernière intervention
18 juin 2016
-
 Utilisateur anonyme -
bonsoir à tous
alors j'ai un petit probleme que j'arrive pas à résoudre je veux afficher certaine postes à partir d'un formulaire de recherche et j'ai essayé d'integrer la pagination ça m'affiche les 4 premiers dans la premiere page mais quand je clique sur le deuxieme lien pour passer à la suite rien ne s'affiche la variable dans l'url ne prend pas les données que je veux afficher voici mon code
      <?php

mysql_connect("localhost","root") or die("erreur de connexion au serveur $host");
mysql_select_db("job");
  
//recherche des résultats dans la base de données

if(isset($_GET["recherche"])){
 $sector = $_GET['sector'];
 $country = $_GET['country'];
 $jobtype = $_GET['jobtype'];
 $level = $_GET['level'];
  $job = $_GET['job'];
 
$sql = "SELECT COUNT(id) as nbArt FROM post  where sector ='$sector' and country='$country' and jobtype='$jobtype' and level='$level' and job='$job'";
$result = mysql_query($sql) or die (mysql_error());
$data=mysql_fetch_assoc($result);
$nbArt=$data['nbArt'];
$perPage=4;
$nbPage = ceil($nbArt/$perPage);
if (isset($_GET['p']) && $_GET['p']>0 && $_GET['p']<=$nbPage ) {
$cPage=$_GET['p'];
}
else
{$cPage=1;}
$cPage=1;

      $sql = "SELECT namejob, local, description , adddate , country , imagejob
             FROM post 
        where sector ='$sector' and country='$country' and jobtype='$jobtype' and level='$level' and job='$job' LIMIT ".(($cPage-1)*$perPage).",$perPage ";
 
$result = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br /><b>'.mysql_error().'</b>'); 

        if (mysql_num_rows($result)){ 
  				
		while($row = mysql_fetch_assoc($result)){
	     echo'   <div class="tab_grid">
          <div class="jobs-item with-thumb">
            <div class="thumb"><a href="jobs_single.html"><img src="'.$row['imagejob'].'" class="img-responsive" alt=""/></a></div>
            <div class="jobs_right">
            <div class="date">30 <span>Jul</span></div>
            <div class="date_desc"><h6 class="title"><a href="jobs_single.html">'.$row['namejob'].'</a><span class="m_1"></h6>
              <span class="meta"><strong>'.$row['local'].','.$row['country'].'</strong> | Posted'.$row['adddate'].'</span>
            </div>
            <div class="clearfix"> </div>
                        <ul class="top-btns">
              
              <li><a href="#" class="fa fa-star-o"></a></li>
              <li><a href="#" class="fa fa-link"></a></li>
            </ul>
            <p class="description">'.$row['description'].'<a href="jobs_single.html" class="read-more"><strong>Apply for this job</strong></a></p>
                    </div>
          <div class="clearfix"> </div>
        </div>
       </div>';
} 
for ($i=1;$i<=$nbPage;$i++){
if ($i==$cPage)
echo " $i / ";
else 
{
echo " <a href=\"search.php?p=$i\">$i</a> /" ;
}
}
}  
 else	{echo'     <h3 style="text-align:center; margin:10px 0;">Pas de résultats pour cette recherche</h3>';}
 }
?>

2 réponses


Bonjour

Tout ton code est à l'intérieur du if(isset($_GET["recherche"]))
Or le lien que tu utilises pour changer de page n'a pas de paramètre 'recherche', donc quand tu cliques dessus, tu sautes directement à la fin de ton code.
Le mieux serait sûrement que tu enregistres les paramètres de recherche dans des variables de session pour les ré-utiliser quand tu changes de page.
Messages postés
2
Date d'inscription
samedi 18 juin 2016
Statut
Membre
Dernière intervention
18 juin 2016

Je fais comment tu peux me donner un petit exemple s'il te plait ??

Un petit exemple pour le principe - avec un seul champ.
Pour plus de détails, il y a le manuel :http://php.net/manual/fr/session.examples.basic.php


<?php
session_start(); // obligatoire au début de tout script qui utilise les sessions
// si on reçoit des variables par GET, on les prend en compte ET on les enregistre dans des variables de session
if(isset($_GET["recherche"])){ 
  $sector = $_GET['sector'];
  $_SESSION['sector']=$sector; // on enregistre cette variable dans une variable de session
...
} 
// sinon, on récupère les variables précédemment enregistrées dans les sessions
else if(isset($_SESSION['sector'])) {
  $sector = $_SESSION['sector'];
...
}
// si on a récupéré quelque chose (par GET ou par session) on peut faire le traitement
if (isset($sector)) {
// traitement
...
}