Pagination qui ne pagine pas ;)
Bonjour à tous,
Alors voilà, je suis débutante en php et je me frotte à un projet pour lequel je suis coincée à plusieurs endroits.
Le premier, c'est la pagination.
Le projet est un annuaire, donc un genre de moteur de recherche dans une BDD.
La recherche fonctionne bien. Mais pas la pagination.
Lorsque la pagination s'affiche, j'ai en fait tous les numéros de pages de toute la BDD (soit 4000 et quelques pages) et mes résultats s'affichent les uns en dessous des autres... (les pages sont looonnngues lol).
J'ai l'impression que ma requête de base (ma recherche) n'est pas prise en compte dans cette pagination et quoi que je fasse, et je n'y arrive pas....
Voici le code de ma page entière :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Infirmières Libérales (cabinets et soins à domicile)</title>
<?php if (isset($metaRefresh)) echo $metaRefresh;?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<meta http-equiv="Content-Language" content="fr" />
<link rel="stylesheet" type="text/css" href="../css/style.css" />
</head>
<body>
<?php
if(isset($_POST['requete']) && $_POST['requete'] != NULL)
{
mysql_connect('localhost','root','root');
mysql_select_db('annuaire-infirmieres');
//pagination
$sql = "SELECT COUNT(id) as nbInf FROM infirmieres";
$req = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_assoc($req);
print_r($data);
$nbInf = $data['nbInf'];
$parPage = 5;
$nbPage = ceil($nbInf / $parPage);
if(isset($_GET['p']) && $_GET['p']>0 && $_GET['p']<=$nbPage) {
$pageCourante = $_GET['p'];
}
else {
$pageCourante = 1;
}
$sql = "SELECT * FROM infirmieres WHERE code_postal LIKE '%$requete%' ORDER BY id DESC LIMIT ". (($pageCourante-1)*$parPage). ",$parPage";
$req = mysql_query($sql) or die(mysql_error());
while ($data=mysql_fetch_assoc(sreq)){
echo "<h1>{$data['nom']}</h1>";
echo $data{'nom'};
echo "</hr>";
}
for($i=1;$i<$nbPage;$i++) {
if($i==$pageCourante) {
echo " $i /";
}
else {
echo "<a href=\"recherche/rechercher_ville.php?p=$i\">$i</a> ";
}
}
//fin pagination
//requête sur le champ ville du formulaire
$requete = htmlspecialchars($_POST['requete']);
$query = mysql_query("SELECT * FROM infirmieres WHERE nom LIKE '%$requete%' ORDER BY id DESC") or die (mysql_error());
$nb_resultats = mysql_num_rows($query);
if($nb_resultats != 0)
{
?>
<!--affichage des résultats-->
<h3>Résultats de votre recherche.</h3>
<h2>Nous avons trouvé <? echo $nb_resultats;
if($nb_resultats > 1) { echo ' résultats'; } else { echo ' résultat'; }
?>
dans votre commmune :<br/>
<br/></h2>
<?
while($donnees = mysql_fetch_array($query))
{
?>
<br/><div id="affichage">
<? echo $donnees['nom']?><br/>
<? echo $donnees['adresse']?><br/>
<? echo $donnees['code_postal']?>
<? echo $donnees['ville']?><br/>
<input class="bouton-inscription-affichernum" type="submit" value="Afficher le numéro">
<input class="bouton-inscription-affichernum" type="submit" value="Afficher le plan">
<br/><br/>
</div>
<?
}
?><br/>
<br/>
<a href="rechercher_nom.php"> <input class="bouton-inscription-recherche" type="button" value="FAIRE UNE NOUVELLE RECHERCHE"> </a>
<?
}
else
{
?>
<h3>Pas de résultats</h3>
<p>Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_POST['requete']; ?>". <a href="rechercher_nom.php">Réessayez</a> avec autre chose.</p>
<?
}
mysql_close();
}
else
{
?>
<h2>Vous allez faire une recherche dans notre annuaire des infirmières. </br> Saisissez un nom pour réaliser une recherche.</h2>
<form action="rechercher_nom.php" method="Post" class="position-form">
<div id="champrecherche">
<label for="nom">Nom : </label><input type="text" name="requete" size="50" onchange="javascript:this.value=this.value.toUpperCase();">
<input type="submit" class="bouton-inscription-recherche" value="Ok">
<a href="../index.php"><input class="bouton-inscription-accueil" type="button" value="Retour à l'accueil"/></a>
</div>
</form>
<?
}
?>
<div id="image">
<img id="infirmiere" src="../images/infirmiere.jpg" alt="infirmière à domicile"/>
</div>
</body>
<?php
include('../cnx-dnx/includes/bas.php');
?>
</html> |
Si jamais vous trouvez le bug, pouvez vous m'expliquer sa résolution "pas à pas" ?
Par avance, je vous en remercie !!!
Karine