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

PHP & Base de données Discussion :

Moteur de recherche avancé [Débutant(e)] [MySQL]


Sujet :

PHP & Base de données

  1. #1
    nal
    nal est déconnecté
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 56
    Points
    56
    Par défaut Moteur de recherche avancé
    Bonjour à tous ,
    Voilà mon problème:
    J'ai créé un premier formulaire pour une recherche de cartes postales par commune. Le résultat de toutes les cartes postales pour la commune sélectionnée s'affiche dans reponse_cartes_postale.php.
    Dans la réponse en php j'ai inséré un second formulaire qui affine les résultats de cette commune par thèmes ( ceux identifiés sur les cartes postales d'une commune).
    J'ai donc une table Themes_cartes_postales qui contient 2 champs Theme et Nom_commune (donc une commune peut-être référencée sous plusieurs thèmes), puis une table Cartes_postales avec toutes les infos par cartes.
    Mon script donne ça:
    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
    $choix = $_POST ['communes'];
    if ($choix !="")
    $finrequete = " Themes_cartes_postales.Nom_commune LIKE '%$choix%'";
    $sql="SELECT * FROM Themes_cartes_postales, Cartes_postales WHERE $finrequete ";
    $resultat=mysql_query($sql,$bd);
     
    if ($maligne=mysql_fetch_array($resultat)){
     
    echo "<H4><a href=formulaire_cartes_postales.html>Nouvelle recherche</a></H4>"; 
    /*moteur de recherche avancée*/
    echo ' 
    <div id=divprecis_site>
     
    <H3> Affiner le r&eacute;sultat par th&egrave;me:</H3> 
    <H3><form method="post" action="commune_theme.php"></H3> 
    <select name="communes" id="communes">
    <option value="'.$choix.'">'.$choix.'</option></select>
    <select name="themes" id="themes"> 
    <option value="'.$maligne['Theme'].'">'.$maligne['Theme'].'</option></select>
    <input name="valider" type="submit" id="submit" value="valider"> 
    </form>
    </div>';
    Le problème vient de la partie de moteur de recherche avancée: le $_maligne['Theme'] n'affiche dans le formulaire que le premier résultat de 'Theme' pour une commune de la table et je ne sais pas comment faire une boucle à l'intérieur du formulaire(??) .
    Peut-être faudrait-il que je récupère le résultat en boucle de tous les thèmes pour une commune dans une nouvelle variable que j'insèrerais au formulaire mais je ne sais pas si c'est possible? .
    Si quelqu'un a une idée, merci d'avance. Nal

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    C'est normal, il n'y a pas de boucle sur <option>. Ca serait plutot du:

    et tu utilises un mysql_num_rows a la place de ton 1er mysql_fetch_array pour tester s'il y un présence d'un thème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($maligne=mysql_fetch_array($resultat)){
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($maligne=mysql_fetch_array($resultat))
    {
      <option value="'.$maligne['Theme'].'">'.$maligne['Theme'].'</option>
    }

  3. #3
    nal
    nal est déconnecté
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 56
    Points
    56
    Par défaut [débutant]moteur de recherche avancé
    En fait entre temps j'ai trouvé un moyen de faire une boucle qui fonctionne dans le formulaire en faisant ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <select name="themes" id="themes">';
    do{
    echo '<option value="'.$maligne['Theme'].'">'.$maligne['Theme'].'</option>';
    }while ($maligne=mysql_fetch_array($resultat));
    }
    echo '</select>';
    echo'
    <input name="valider" type="submit" id="submit" value="valider"> 
    </form>
    </div>';
    Je ne sais pas si c'est normal mais ça marche...

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    Oui c'est normal, c'est quaasi la même solution. Moi je t'ai proposé un while, ta solution est un do while. Tu n'avais pas de boucle donc tu affichais uniquement la première valeur trouvée.

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

Discussions similaires

  1. [MySQL] qqun pour poursuivre mon projet avancé de moteur de recherche web
    Par gversus dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/04/2011, 12h41
  2. Moteur de recherche avancé pour mes objets
    Par Arsenic68 dans le forum Silverlight
    Réponses: 6
    Dernier message: 29/07/2010, 19h34
  3. Moteur de recherche avancée
    Par la_chouette dans le forum Langage
    Réponses: 3
    Dernier message: 07/05/2010, 13h26
  4. [eCommerce] Moteur de recherche avancé
    Par freija dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 01/07/2008, 09h55
  5. Modéliser un moteur de recherche avancé
    Par Al_Phonse dans le forum Débuter
    Réponses: 6
    Dernier message: 22/04/2008, 15h32

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