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):
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
|
<?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>
} |
D'autre part, j'utilise un code pour effectuer une recherche. Là encore, aucun problème, le code est le suivant :
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
|
<?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