Problème affichage de résultats sur plusieurs pages

Signaler
Messages postés
2
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
31 juillet 2009
-
Messages postés
74
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
26 mai 2011
-
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

Messages postés
340
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
22 octobre 2009

Bonjour,

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

Cordialement
Messages postés
74
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
26 mai 2011

Bonjour, oui effectivement utilise le BBcode pour le script la c'est illisible et trés long