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 :

Grand Débutant : problème boucle et variable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut Grand Débutant : problème boucle et variable
    bonjour,

    j'essaie de faire une boucle toute simple pour un moteur de recherche par mot clef. Quand je rentre 2 mots ou plus, il n'y a que le premier qui est reconnu. Qqn pourrait m'aider ?

    merci beaucoup, voici le code

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
    // on se connecte à notre base 
    $base = mysql_connect (  );
    mysql_select_db (   );
    $_SESSION['motsclef']=$_POST['motsclef'] ;
    // On recupère la variable motsclef 
    $motsclef = $_SESSION['motsclef']; 
     
    // On recupère la méthode 
    $_SESSION['methode']=$_POST['methode'] ;
    $methode = $_SESSION['methode']; 
     
    // On explose les mots clefs 
    // en tronquant à chaque espace 
    $motsclef1 = explode(" ",$motsclef); 
     
    // On compte le nombre de mots entrés par le visiteur 
    $nbr_mots = count($motsclef1); 
     
    // On recherche dans la table si qqchose ressemble au premier mot clé 
    $sql = "SELECT * FROM aide_ac WHERE (specifique LIKE '%$motsclef1[0]%' OR description LIKE '%$motsclef1[0]%' OR adresse LIKE '%$motsclef1[0]%' OR tarifs LIKE '%$motsclef1[0]%' OR intervenants LIKE '%$motsclef1[0]%')";
     
     
    // On fait une boucle pour les autres mots clés 
    $i = "1"; 
    while ($i<$nbr_mots) 
     
    { 
     
    // On specifie la methode OR ou AND et on recherche 
    $sql .= " $methode (specifique LIKE '%$motsclef1[i]%' OR description LIKE '%$motsclef1[i]%' OR adresse LIKE '%$motsclef1[i]%' OR tarifs LIKE '%$motsclef1[i]%' OR intervenants LIKE '%$motsclef1[i]%')"; 
     
    // On increment la variable $i 
    $i++; 
     
    } 
     
     
    // On execute la requete 
    $result = mysql_query($sql); 
     
    // On recupère les données trouvés 
    while ($data = mysql_fetch_array($result)) { 
     
    // On affiche les resultats 
    echo "Description : ".$data[description]." <br/>"; 
    echo "Intervenants : ".$data[intervenants]." <br/>"; 
    echo "Public : ".$data[public]." <br/>"; 
     
     
    } 
     
    ?>
    et voilà ce qu'affiche la requête (echo $sql, mai sj'ia bien deux mots clefs (echo $motsclef; donne "2")


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM aide_ac WHERE (specifique LIKE '%ollivet%' OR description LIKE '%ollivet%' OR adresse LIKE '%ollivet%' OR tarifs LIKE '%ollivet%' OR intervenants LIKE '%ollivet%') AND (specifique LIKE '%%' OR description LIKE '%%' OR adresse LIKE '%%' OR tarifs LIKE '%%' OR intervenants LIKE '%%')



    si besoin, le code de la page du formulaire


    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
    <form method="POST" action="test1.php"> 
     
    <!-- Le champs à remplir par le visiteur --> 
    <tr><td><input type="text" name="motsclef"> 
     
    <!-- Ici le visiteur choisit la methode --> 
    <select name="methode"> 
     
    <option value="AND">Tous les mots</option> 
    <option value="OR">Au moins un mot</option> 
     
    </select> 
     
    </td></tr> 
     
    <!-- Le bouton de validation --> 
    <tr><td><input type="submit" value="Rechercher"></td></tr> 
     
    <!-- On referme le formulaire --> 
    </form>

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, dans ta boucle, tu écris
    Remplace ces occurences par

  3. #3
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    Merci !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E, Débutant] Problème Boucle for
    Par strifer dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/08/2006, 13h30
  2. [Débutant] Problème boucle for
    Par toniooooo dans le forum Langage
    Réponses: 10
    Dernier message: 18/04/2006, 15h42
  3. [VB.NET] [Débutant] Probléme de variable dans les requettes
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/03/2005, 14h13
  4. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 18h41

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