Bonjour
Premièrement, merci pour ce forum riche en informations.
Je vous explique la situation. J'utilise sur mon site d'annonce un code pour afficher uniquement 5 annonces par page et créer automatiquement les pages suivantes.
Aucun problème, le code est le suivant (adapté d'un tuto):
D'autre part, j'utilise un code pour effectuer une recherche. Là encore, aucun problème, le code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php $messagesParPage=5; //Nous allons afficher 5 messages par page. $retour_total=mysql_query('SELECT COUNT(*) AS total FROM annonces'); //Nous récupérons le contenu de la requête dans $retour_total $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau. $total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total. //Nous allons maintenant compter le nombre de pages. $nombreDePages=ceil($total/$messagesParPage); if(isset($_GET['page'])) // Si la variable $_GET['page'] existe... { $pageActuelle=intval($_GET['page']); if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages... { $pageActuelle=$nombreDePages; } } else // Sinon { $pageActuelle=1; // La page actuelle est la n°1 } $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire // La requête sql pour récupérer les messages de la page actuelle. $retour_messages=mysql_query('SELECT * FROM annonces WHERE categorie="Autres" ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.''); while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle { //Je vais afficher les messages dans des petits tableaux. C'est à vous d'adapter pour votre design... //De plus j'ajoute aussi un nl2br pour prendre en compte les sauts à la ligne dans le message. echo ' Pseudo : <strong>'.stripslashes($donnees_messages['prenom']).' </strong><br /> <p class="annonce"> <?php '.nl2br(stripslashes($donnees_messages['annonce'])).''</p> }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php if (isset ($_GET['recherche'])){ $recherche=$_GET['recherche']; $s=explode(" ",$recherche); $sql="SELECT * FROM annonces"; $tabWhere = array(); foreach ($s as $mot) if(strlen($mot)>3) $tabWhere[] = "annonce LIKE '%$mot%'"; if(sizeof($tabWhere) > 0) { $sql .= ' WHERE '.implode(' OR ', $tabWhere); $req=mysql_query($sql) or die( mysql_error()); echo mysql_num_rows($req)." Résultats"; while($d=mysql_fetch_assoc ($req)){ echo 'Pseudo : <strong>'.stripslashes($d['prenom']).' </strong><br />'; $c=$d['annonce']; $i=0; foreach ($s as $mot) { if(strlen($mot)>3){ $i++; if($i>4){$i=1;} $c = str_ireplace($mot,'<span class="surligne'.$i.'">'.$mot.'</span>',$c); } } echo '<p class="annonce"> '.nl2br(stripslashes($c)).' </p>'; } }else echo "Les mots clés doivent comporter plus 3 lettres"; } else { echo "Vous n'avez pas indiqué de mot-clés"; } ?>
Voila, mon problème est le suivant, j'aimerais combiner les deux codes de façon à ce que les résultats de la recherche s'affiche 5 par pages et que les autres pages soient créer automatiquement.
Voila, si quelqu'un a la gentillesse de m'aider a résoudre ce problème, je serais ravi.
Merci d'avance
Cordialement
Foyout
Partager