Pagination

Bonjour,
Bonsoir à tous!si vous pouvez m'aider, j'en suis très reconnaissant!J'ai un problème avec mon code de pagination, comment puis-je faire ça pour pouvoir manipuler suivant suivant ma page liste?
Voici mon code:

<?php
// print_r($_POST);
require_once 'config.php';

$query = "SELECT * FROM membres";

$filtre = array();

if(isset($_POST["nom"]) && $_POST["nom"] != "")
$filtre[] = sprintf("'nom' LIKE '%s' OR 'prenom' LIKE '%s'", "%".$_POST["nom"]."%", "%".$_POST["nom"]."%");
if(isset($_POST["civilite"]) && $_POST["civilite"] != "")
$filtre[] = sprintf("'civilite' = '%s'", $_POST["civilite"]);

if(count($filtre) != 0)
$query = $query." WHERE ".implode(" AND ", $filtre);

if(isset($_GET["page"]))
$page = $_GET["page"];
else
$page = 0;

$par_page = 2;

$query = sprintf("%s LIMIT %d, %d", $query, $page*$par_page, $par_page);

//echo $query;

$res = mysql_query($query) OR die (mysql_error());
//$page = mysql_num_rows($query);
?>
<script language="javascript">
function confirme(){
var confirmation = confirm("Voulez vous vraiment supprimer cette personne?");
if(confirmation){
return true;
}
return false;
}
</script>
<form method="post" action="">
<table cellpadding="0" cellspacing="0">
<tr><td><a href="form.php">Formulaire</td></tr>
<tr align="left">
<td>Rechercher par nom: </td>
<td><input type="text" name="nom" id="filtre" value="<?php if(isset($_POST["nom"])) echo $_POST["nom"]; ?>"></td>
<td><input type="submit" value="Chercher"></td>
</tr>
<td>Rechercher tous les: </td>
<td><select name="civilite">
<option value="" <?php if(isset($_POST["civilite"]) && $_POST["civilite"] == ""){ echo 'selected="selected"'; } ?>>Tous</option>
<option value="Mr" <?php if(isset($_POST["civilite"]) && $_POST["civilite"] == "Mr"){ echo 'selected="selected"'; } ?>>Mr</option>
<option value="Mme" <?php if(isset($_POST["civilite"]) && $_POST["civilite"] == "Mme"){ echo 'selected="selected"'; } ?>>Mme</option>
<option value="Mlle" <?php if(isset($_POST["civilite"]) && $_POST["civilite"] == "Mlle"){ echo 'selected="selected"';} ?>>Mlle</option>
</select></td>
</tr>
</table>
</form>
<table width="100%" border="1">
<?php if(isset($_GET["msg"])) :?>
<tr>
<td colspan="10">
<?php echo $_GET["msg"]; ?>
</td>
</tr>
<?php endif ?>
<tr>
<th width="2">Civilité</th>
<th width="50" align="center">Nom</th>
<th width="20" align="center">Prénom</th>
<th width="20" align="center">Date de naissance</th>
<th width="20" align="center">Profession</th>
<th width="20" align="center">Ville</th>
<th width="3" align="center">Code Postal</th>
<th width="20" align="center">Téléphone</th>
<th width="5" align="center">E-mail</th>
<th width="5" align="center">Action</th>
</tr>
<?php
while($data = mysql_fetch_array($res)){
?>

<tr valign="top">
<td align="center" class="td1"><?php echo $data["civilite"];?></td>
<td align="center" class="td2"><strong><?php echo $data["nom"]; ?></strong></td>
<td align="center" class="td3"><i><?php echo $data["prenom"]; ?></i></td>
<td align="center" class="td4"><?php echo $data["date_nais"]; ?></td>
<td align="center" class="td5"><?php echo $data["profession"]; ?></a></td>
<td align="center" class="td6"><?php echo $data["ville"]; ?></td>
<td align="center" class="td7"><?php echo $data["cp"]; ?></td>
<td align="center" class="td8"><?php echo $data["telephone"]; ?></td>
<td align="center" class="td9"><?php echo $data["email"]; ?></td>
<td align="center" class="td8"><a href="maj.php?id_membre=<?php echo $data["id_membre"]; ?>">Editer</a>
<a
href="supprime.php?id_membre=<?php echo $data["id_membre"]; ?>"
onclick="return confirme();"
>
Supprimer
</a></td>
</td>
</tr>
<?php } ?>
</table>
<a href="liste.php?<?php if(isset($_GET["page"])) echo $_GET["page"]; ?> ">suivant</a>

Merci d'avance pour votre aide!
Cordialement!
mirakanto

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Pourquoi tu mets : <a href="liste.php?<?php if(isset($_GET["page"])) echo $_GET["page"]; ?> ">suivant</a> ?

    Avec un lien comme celui-ci tu dois toujours rester sur la même page. il faudrait mettre :
    <a href="liste.php?<?php if(isset($_GET["page"])) echo ($_GET["page"]+1); ?> ">suivant</a>
    1. Merci beaucoup à toi lupuz, mais ma page avance sur une seule page et elle s'arrête la!peut-tu me dire ce que je dois encore ajouter sur le code?Merci beacoup pour ton aide!
    2. Il faut aussi que tu ajoutes ta variable page dans l'URL :
      <a href="liste.php?<?php if(isset($_GET["page"])) echo "page=".($_GET["page"]+1); ?> ">suivant</a>

      PS : Tu comprends le code que tu écris ? Car cette erreur est énorme.
    3. Merci beacoucoup pour ton aide!désolé parce que j'étais en train de réfléchir et mon code ne se termine pas jusqu'à la fin!Mais la page ne s'avance pas toujours!
      Si tu as encore d'autre idée je t'ne remercie d'avance!
    4. je t'en remercie d'avance!désolé pour les fautes d'orthographes, pourrait-tu me donner un url pour mieux comprendre et apprendre plus vite le php?Merci d'avance!