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 :

formulaire avec plusieurs Listes déroulantes mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut formulaire avec plusieurs Listes déroulantes mysql
    alors voila je suis débutant, j'ai pas mal cherché sur internet mais j'ai un petit problème
    J'ai une base de donnée saisie avec une table saisie
    Et plusieurs champs : continent, marque, type....

    Mon but est de faire un formulaire avec des listes déroulantes
    Ensuite j'ai un boutton recherche qui utilise $continent, $marque, $type etc....

    J'ai déja écrit ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    continent :
    <?php
    echo '<BR><SELECT NAME="continent" STYLE="width:200px;" OnChange="submit();">';
    $sql="SELECT distinct continent FROM saisie"; 
    $resultat=mysql_query($sql); 
     while($continent=mysql_fetch_array($resultat)) 
    { 
    echo("<OPTION VALUE=\"$continent[continent]\"> $continent[continent]</OPTION>"); 
    } 
    ?>
    <?
    $continent=$_POST["continent"]
    ?>

    Ce que je voudrais maintenant c'est pouvoir mettre sur ma page les listes déroulantes de tous les champs de la base
    Mais j'ai essayé plusieurs solutions sans succés

    Merci de votre aide

  2. #2
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Ta demande n'est pas tres claire...
    Ou est le probleme ? Tu donnes toi meme un exemple qui est censé fonctionner...
    Montre nous le bout de code qui te pose probleme en décrivant ce que cela donne...

    @+
    cadou

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Je n'ai les deux premières listes qui marchent sur quatre
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <TABLE>
    <?
    $sql="SELECT distinct continent FROM saisie"; 
    $sql2="SELECT distinct marque FROM saisie"; 
    $sql3="SELECT distinct type FROM saisie"; 
    $sql4="SELECT distinct architecture FROM saisie"; 
    ?>
     
    continent  :
    <?
    //edition de la liste déroulante
    echo '<BR><SELECT NAME="continent" STYLE="width:200px;";">';
     
    $resultat=mysql_query($sql); 
    	while($continent=mysql_fetch_array($resultat)) 
    { 
    echo("<OPTION VALUE=\"$continent[continent]\"> $continent[continent]</OPTION>");
    }
    echo '</SELECT><BR><BR>';
    ?>
     
     
    <?
    //enregistrement de la variable pour la recherche
    $continent=$_POST["continent"]
    ?>
     
    Marque:
    <?
    //edition de la liste déroulante
    echo '<BR><SELECT NAME="marque" STYLE="width:200px;";">';
    $resultat=mysql_query($sql2); 
    	while($marque=mysql_fetch_array($resultat)) 
    { 
    echo("<OPTION VALUE=\"$marque[marque]\"> $marque[marque]</OPTION>"); 
    }
    echo '</SELECT><BR><BR>'; 
    ?>
     
    <?
    //enregistrement de la variable pour la recherche
    $marque=$_POST["marque"]
    ?>
     
    Type :
    <?
    //edition de la liste déroulante
    echo '<BR><SELECT NAME="type" STYLE="width:200px;";">';
    $resultat=mysql_query($sql3); 
    	while($marque=mysql_fetch_array($resultat)) 
    { 
    echo("<OPTION VALUE=\"$type[type]\"> $type[type]</OPTION>"); 
    }
    echo '</SELECT><BR><BR>'; 
    ?>
     
    <?
    //enregistrement de la variable pour la recherche
    $type=$_POST["type"]
    ?>
     
    architecture:
    <?
    //edition de la liste déroulante
    echo '<BR><SELECT NAME="architecture" STYLE="width:200px;";">';
    $resultat4=mysql_query($sql4); 
    	while($marque=mysql_fetch_array($resultat4)) 
    { 
    echo("<OPTION VALUE=\"$architecture[architecture]\"> $architecture[architecture]</OPTION>"); 
    }
    echo '</SELECT><BR><BR>'; 
    ?>
    <?
    //enregistrement de la variable pour la recherche
    $architecture=$_POST["architecture"]
    ?>
     
    </TABLE>
     
    </TD><TD>&nbsp;&nbsp;</TD><TD>
    <TABLE>
    Je ne sais pas si c'est un problème mais dans ma base mysql toutes les valeurs sont définis en TEXT alors qu'il peut y avoir des chiffres (comme 206 )

    Hum j'ai un autre problème
    Lorsque je laisse seulement les deux première listes soit continent et marque tout marche parfaitement pour la recherchedans la base
    Mais des que j'en rajoute une ou deux autres la recherche ne se fait plus que par le continent (la première liste) et ne prends pas en compte la valeur de la marque (la seconde liste) et bien sur toujours rien dans les autres listes déroulantes

    Je suis en locale et j'utilise easyphp 1.8 pour raison de compatibilité avec d'autres applis

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Même lorsque je met seulement la liste déroulante type je ne récupère rien dans ma liste déroulante
    J'ai vérifié dans la base mysql tout est en adéquation

    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
    <TABLE>
    <?
    $sql="SELECT distinct continent FROM saisie"; 
    $sql2="SELECT distinct marque FROM saisie"; 
    $sql3="SELECT distinct type FROM saisie"; 
    $sql4="SELECT distinct architecture FROM saisie"; 
    ?>
     
    Type :
    <?
    //edition de la liste déroulante
    echo '<BR><SELECT NAME="type" STYLE="width:200px;";">';
    $resultat=mysql_query($sql3); 
    	while($marque=mysql_fetch_array($resultat)) 
    { 
    echo("<OPTION VALUE=\"$type[type]\"> $type[type]</OPTION>"); 
    }
    echo '</SELECT><BR><BR>'; 
    ?>
     
    <?
    //enregistrement de la variable pour la recherche
    $type=$_POST["type"]
    ?>

  5. #5
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Ta liste est dans un formulaire? Désolé si je demande ca mais je vois un $_POST mais j'ai pas vu le formulaire et le bouton submit^^

  6. #6
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    bon déjà on va nettoyer ton code

    remplace ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo("<OPTION VALUE=\"$type[type]\"> $type[type]</OPTION>");

    par

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo("<OPTION VALUE=\"{$type['type']}\"> {$type['type']}</OPTION>");

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <H2><?php echo $titreMoteur.$titre;?></H2>
    <!-- Formulaire de saisie des critères de recherche-->
    <FORM NAME=recherche ACTION=<?php echo $PHP_SELF;?> METHOD=POST>
    <INPUT TYPE=HIDDEN NAME=lancer_rech VALUE=1>
    <INPUT TYPE=HIDDEN NAME=tri VALUE="continent">
    tu parles de ca?

  8. #8
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    oui voila un formulaire tout simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form method="POST" action="" name="frmListe">
    //ta liste
    <input type="submit" name="btValider" value="Valider" />
    </form>
    <?php
     
    if (isset($_POST['frmListe']))
    {
     $var = $_POST['type'];
     echo $var;
     
    }
    ?>

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Voila j'ai nettoyé mon code

    Qu'est ce que tu appelles ???

  10. #10
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Désolé^^ je pensais à ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Type :
    <?
    //edition de la liste déroulante
    echo '<BR><SELECT NAME="type" STYLE="width:200px;";">';
    $resultat=mysql_query($sql3); 
    	while($marque=mysql_fetch_array($resultat)) 
    { 
    echo("<OPTION VALUE=\"$type[type]\"> $type[type]</OPTION>"); 
    }
    echo '</SELECT><BR><BR>'; 
    ?>

  11. #11
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Non je ne sais pas pourquoi je n'arrive toujours pas à récupérer les valeurs dans ma liste déroulante
    Elle se déroule mais sans acune valeur dedans

    Pour ma recherche j'ai ca
    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
    <?php
    //Création dynamique de la requete SQL en fonction des critères de recherche
    if (!empty($continent))
       if ($clause=="")
          $clause = "where continent like '%$continent%'";
       else
          $clause = "$clause and continent like '%$continent%'";
     
    if (!empty($marque))
       if ($clause=="")
          $clause = "where marque like '%$marque%'";
       else
          $clause = "$clause and marque like '%$marque%'";
     
    if (!empty($type))
       if ($clause=="")
          $clause = "where type like '%$type%'";
       else
          $clause = "$clause and type like '%$type%'";
     
    if (!empty($architecture))
       if ($clause=="")
          $clause = "where architecture like '%$architecture%'";
       else
          $clause = "$clause and architecture like '%$architecture%'";
     
    $liste_tables="base";
    if (!empty($id)){
       if ($clause=="")
          $clause = "where continent=$id";
       else
          $clause = "$clause and continent=$id";
    }
    for ($i=0;$i<count($tab_affichage);$i++){
       $num=$tab_affichage[$i];
       $liste_des_colonnes=$liste_des_colonnes.", base.".$tab_colonnes[$num];
    }
    $query= "select distinct base.continent $liste_des_colonnes from $liste_tables $clause order by $criteres_tri";
    if (!isset($pk_table))
       $pk_table="";
    echo "<TABLE BGCOLOR=$couleur_fond_bas width=100% height=100%><TR VALIGN=TOP><TD>";;
    if (isset($lancer_rech)&&$lancer_rech==1)
       $result = execute_select($query,$mod,0,"continent",$pk_table,0,$mod_tabulaire_moteur,$all_lignes);
    echo "</TD></TR></TABLE>";;
    include("piedpage.php");
    ?>

  12. #12
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Ben déjà dans cette liste la par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Type :
    <?
    //edition de la liste déroulante
    echo '<BR><SELECT NAME="type" STYLE="width:200px;";">';
    $resultat=mysql_query($sql3); 
    	while($marque=mysql_fetch_array($resultat)) 
    { 
    echo("<OPTION VALUE=\"$type[type]\"> $type[type]</OPTION>"); 
    }
    echo '</SELECT><BR><BR>'; 
    ?>
    Donc celle que tu as posté avant il ya un souci : $type[type] sachant que ton while c'est $marque !

  13. #13
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Ah oui
    Je regarde car la je n'ai plus rien qui fonctionne...

  14. #14
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    VICTOIRE!!!!!!!!!!!

    Et oui c'était juste ca un copier coller maladroit

    Merci obito!!
    et SphynXz aussi

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/03/2015, 21h28
  2. Réponses: 1
    Dernier message: 08/05/2008, 23h00
  3. Réponses: 2
    Dernier message: 24/10/2006, 12h42
  4. Réponses: 7
    Dernier message: 17/10/2006, 12h32
  5. Formulaire avec plusieurs listes déroulantes
    Par cyberdevelopment dans le forum Langage
    Réponses: 5
    Dernier message: 17/07/2006, 16h59

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