IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Affichage recherche php


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 11
    Par défaut Affichage recherche php
    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 : 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>
     
    }
    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
     
    <?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

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Assez long mais facile a réaliser regardes le TOPO du site
    http://antoine-herault.developpez.co...atique-en-php/

Discussions similaires

  1. [SGBD] Recherche PHP+MySQL
    Par gaucher dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/05/2006, 15h43
  2. [MySQL] Problème affichage tableau PHP avec données SQL
    Par akalaan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 15h34
  3. [CSS] Probleme affichage texte php
    Par davyazam dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 06/02/2006, 11h22
  4. Requête maître-détail et affichage en PHP
    Par c2pk dans le forum Requêtes
    Réponses: 11
    Dernier message: 26/01/2006, 19h52
  5. [MySQL] Formulaire de recherche PHP + un script d recherche en HTML
    Par Dsphinx dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/11/2005, 20h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo