Problème affichage de résultats sur plusieurs pages

cs_Audreypf Messages postés 2 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 31 juillet 2009 - 18 juil. 2009 à 00:25
romain14g59 Messages postés 74 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 26 mai 2011 - 19 juil. 2009 à 14:49
Bonjour à tous,

j'ai cherché une solution sur le net mais je ne trouve pas la solution. Voici mon problème. D'abord, je précise que je suis débutante en php.

Sur mon site de petites annonces, j'ai créer un espace de recherche multicritères. Sur la page par défaut, toutes les annonces apparaissent sur plusieurs pages

Ensuite, si on fait une recherche par département, on obtient les résultats sur plusieurs pages.
Pour la 1ère page, pas de problème. Mais quand je clique sur la 2e ou la dernière, les annonces qui s'affichent ne tiennent plus compte des critères de tri.
La 2 page m'affiche donc les résultats de la 2e page que j'avais avant le tri. Et si je reclique sur précédent, c'est la 1ère page avant tri qui s'affiche...

Le code que j'ai utilisé est issu d'un tuto que j'avais trouvé sur le Net. j'espère que vous pourrez vite m'aider car mon site est consulté tous les jours et ca doit être très pénible pour les internautes.

Voici le code :

<?php
$currentPage = $_SERVER["PHP_SELF"];
$SSAdv_colors1 = array("#40BAC4","#A600A6");
$SSAdv_k1 = 0;
$SSAdv_m1 = 0;
$SSAdv_change_every1 = 1;

function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
}


// Initialisation du message de rponse
$message = null;

include('admin/connexion.php');

$query_departement = "SELECT * FROM departement ORDER BY iddpt ASC";
$departement = mysql_query($query_departement, $connection) or die(mysql_error());
$row_departement = mysql_fetch_assoc($departement);
$totalRows_departement = mysql_num_rows($departement);

$categorie = (isset($_POST['categorie']) && trim($_POST['categorie']) != '')? Verif_magicquotes($_POST['categorie']) : null;
$ville = (isset($_POST['membre_ville']) && trim($_POST['membre_ville']) != '')? Verif_magicquotes($_POST['membre_ville']) : null;
$dpt = (isset($_POST['membre_dpt']) && trim($_POST['membre_dpt']) != '')? Verif_magicquotes($_POST['membre_dpt']) : null;
$numero = (isset($_POST['numero']) && trim($_POST['numero']) != '')? Verif_magicquotes($_POST['numero']) : null;


$maxRows_recherche = 20;
if (isset($_GET['pageNum_recherche'])) {
$pageNum_recherche = $_GET['pageNum_recherche'];
}
$startRow_recherche = $pageNum_recherche * $maxRows_recherche;


$query_recherche = "SELECT * FROM annonces WHERE membre_ville LIKE '%$ville%' AND membre_dpt LIKE '%$dpt%' AND categorie LIKE '%$categorie%' AND numero LIKE '%$numero%' ORDER BY numero DESC";
$query_limit_recherche = sprintf("%s LIMIT %d, %d", $query_recherche, $startRow_recherche, $maxRows_recherche);
$recherche = mysql_query($query_limit_recherche, $connection) or die(mysql_error());
$row_recherche = mysql_fetch_assoc($recherche);

if (isset($_GET['totalRows_recherche'])) {
$totalRows_recherche = $_GET['totalRows_recherche'];
} else {
$all_recherche = mysql_query($query_recherche);
$totalRows_recherche = mysql_num_rows($all_recherche);
}
$totalPages_recherche = ceil($totalRows_recherche/$maxRows_recherche)-1;



$queryString_recherche = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_recherche") == false &&
stristr($param, "totalRows_recherche") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_recherche = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_recherche = sprintf("&totalRows_recherche=%d%s", $totalRows_recherche, $queryString_recherche);

?>
<!--DWLayoutTable-->
----

Vous recherchez :,
Votre département :,
Votre ville (facultatif) :,

----

<select name="categorie" class="Style37" id="categorie">
<option value="Parent">Des enfants à garder</option>
<option value="Babysitter">Une babysitter</option>
<option value="Nounou">Une nounou</option>
<option value="Assistante maternelle agréée">Une assistante maternelle agréée</option>
<option value="Aide aux nouvelles mamans">Une aide durant les premiers jours</option>
<option value="Soutien scolaire">Du soutien scolaire</option>
<?php do { ?>
<?php
} while ($row_categorie = mysql_fetch_assoc($categorie));
$rows = mysql_num_rows($categorie);
if($rows > 0) {
mysql_data_seek($categorie, 0);
$row_categorie = mysql_fetch_assoc($categorie);
}
?>
</select>,
<select name="membre_dpt" class="Style37" id="membre_dpt">
<?php
do {
?>
<option value="<?php echo $row_departement['dpt']?>"><?php echo $row_departement['numdpt']; ?>-<?php echo $row_departement['dpt']?></option>
<?php
} while ($row_departement = mysql_fetch_assoc($departement));
$rows = mysql_num_rows($departement);
if($rows > 0) {
mysql_data_seek($departement, 0);
$row_departement = mysql_fetch_assoc($departement);
}
?>
</select>,
,

----




</form>

<td colspan="13" valign="top">

<?php echo $totalRows_recherche ?> annonces correspondent à votre recherche :




N°,
Disponibilité,
Titre,
Ville,
Détails
<?php do { ?>
<?php if ($totalRows_recherche > 0) { // Show if recordset not empty ?>


<tr bgcolor=\"
<?php
if($SSAdv_m1%$SSAdv_change_every1==0 && $SSAdv_m1>0){
$SSAdv_k1++;
}
print $SSAdv_colors1[$SSAdv_k1%count($SSAdv_colors1)];
$SSAdv_m1++;
?>\">

<?php $idan=$row_recherche['numero'];echo $idan; ?>,
<?php echo $row_recherche['dispo']; ?>,
<?php echo $row_recherche['titre']; ?>,
<?php echo $row_recherche['membre_ville']; ?>,

" target="_blank" class="Style2" onclick="MM_openBrWindow('voirannonce.php?no=<?php echo $row_recherche['numero']; ?>','voirannonce','width=500,height=480')">
<?php } // Show if recordset not empty ?>
<?php } while ($row_recherche = mysql_fetch_assoc($recherche)); ?>

<!--DWLayoutTable-->
----

<?php if ($pageNum_recherche > 0) { // Show if not first page ?>
">Premier">
<?php } // Show if not first page ?>,
<?php if ($pageNum_recherche > 0) { // Show if not first page ?>
\">Précédent \">
<?php } // Show if not first page ?>
</td>
,
<?php if ($pageNum_recherche < $totalPages_recherche) { // Show if not last page ?>
">Suivant ">
<?php } // Show if not last page ?>, </td>

<?php if ($pageNum_recherche < $totalPages_recherche) { // Show if not last page ?>
">Dernier ">
<?php } // Show if not last page ?>

, </td>
</td>


<td>
<td></td>
<td></td>
</tr>
</table>


</html>

2 réponses

cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
18 juil. 2009 à 06:02
Bonjour,

Ton code est illisible. Tu pourrais utiliser les tags spécifiques à ceux-là par exemple. Cela nous aiderait à mieux lire.

Cordialement
0
romain14g59 Messages postés 74 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 26 mai 2011
19 juil. 2009 à 14:49
Bonjour, oui effectivement utilise le BBcode pour le script la c'est illisible et trés long
0
Rejoignez-nous