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 des enregistrement a l'aide de plusieurs variable d'un formulaire !


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Affichage des enregistrement a l'aide de plusieurs variable d'un formulaire !
    Bonjour, j'ai pu utiliser une variable issus d'un formulaire ds unr requete mais j'arrive pas a combiner plusieurs variables issus d'un formulaire dans une meme requete !
    voila ce que je fais :
    Code html : 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
    <html>
    <body>
    <font color=blue><h2 align=center><u>Veuillez déterminer les critères de recherche !</h2></u></font>
     
    <form action="recherche.php"  method="POST">
      <table>
         <tr>
             <td>Critère :</td>
                    <td> <select name="choix1" >
                      <option value="valopt1">Age</option>
                      <option value="valopt2">Moyenne</option>
                 </select></td>
            <td>   Opérateurs : </td>
            <td><select name="choix2" >
                      <option value="valop1"><</option>
                      <option value="valop2">!=</option> 
                      </select></td>
                      <td> Valeur :</td>
                      <td> <input type=text name="valeur"> </td> </tr>
        <tr><td></td>
            <td></td>
            <td></td>
            <td></td><td></td><td></td><td></td>
           <td><input type=submit name="Valider"  value="Rechercher"></td>
     
         </table>
    </form> 
    </body>
    </html>



    et le deuxieme :
    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
    <html>
    <body>
    <font color=blue><h2 align=center><u>Résultat !</h2></u></font>
    <CENTER>
    <table border=1>
           <tr>
              <th>Nom</th>
              <th>Prenom</th>
              <th>CNE</th>
              <th>AGE</th>
              <th>MOYENNE</th>
                   </tr>
    <?
    if (mysql_connect("localhost","root","")>0)
    echo"";
    else echo "connexion impossible ";
    if(mysql_select_db("ensas")==true) 
    echo "<br> ";
    else "selection de la base impossible ";
    $choix1=$_POST['choix1'];
    $choix2=$_POST['choix2'];
    $valeur=$_POST['valeur'];
    $requete="SELECT* FROM g_info where $choix1 $choix2 $valeur"; //c'est la ou j'ai le probleme
    $result=mysql_query($requete);
       do
         {
    ?>
           <tr>
              <td><? echo $enreg['NOM']; ?></td>
              <td><? echo $enreg['PRENOM']; ?></td>
              <td><? echo $enreg['CNE']; ?></td>
              <td><? echo $enreg['Age']; ?></td>
              <td><? echo $enreg['Moyenne']; ?></td>
           </tr>
    <?
        }while($enreg=mysql_fetch_array($result));
     
    ?>
    </table>
    </center>
    </body>
    </html>
    et merci d'avance.

  2. #2
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Je comprend pas ce que tu veut dire?
    manganimes (en construction) -
    zemanga

  3. #3
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    Dans ta requête, il faut que tu mettes ton WHERE beaucoup plus explicite !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete="SELECT* FROM g_info WHERE choix=".$choix1." AND choix=".$choix2." AND valeur= ".$valeur."";
    valeur= et choix= représentent les nom de colonne de table....

    En plus, si tes "$choix" et "$valeur" sont des chaines de caractères, il faut les placer entre quotes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete="SELECT* FROM g_info WHERE choix='".$choix1."' AND choix='".$choix2."' AND valeur= '".$valeur."'";
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Affichage des enregistrement a l'aide de plusieurs variable d'un formulaire !
    Oui j'ai fais ce que vous avez dit mais ca m'affiche rien du tt que les entetes du tableau sans contenu

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Encore Pas de reponse
    Que dois je faire pour utiliser des variables dans la clause where

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Sans doute un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT * FROM g_info WHERE (choix='$choix1' OR choix='$choix2') AND valeur='$valeur'";

    Ou encore
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT * FROM g_info WHERE choix IN('$choix1', '$choix2') AND valeur='$valeur'";

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Affichage des enregistrement a l'aide de plusieurs variable d'un formulaire !
    Merci pour la reponse mais c'est pas ca ce que je veux dire,je m'explique : lacondition c'est pas l'une de ces variables choix1,choix2 ou valeur mais ce sont les trois, cad par exemple si l'utilisateur choisit Age(c un champs) dans choix1, < (c'est un opérateur) et valeur une valeur qu'ilva saisir le where sera donc compris par la requete comme suit :
    Select* from ouvrage where Age<23 par exemple donc la condition sera la combinaison de ces trois puisque chacune représente une partie de la condition . j"ailerais bien que vous comprenez mon probleme. Merci

  8. #8
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    Quels sont les noms de tes 3 colonnes ?

    Dans le code que je t'ai passé, c'est normal qu'il affiche rien : c'est une réunion de 3 conditions pour effectuer la requête, et si dans ton formulaire tu tappe des valeurs au hasard, il y a forcément au moins une des conditions qui ne sera pas respecté....
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  9. #9
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par Xunil
    Sans doute un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT * FROM g_info WHERE (choix='$choix1' OR choix='$choix2') AND valeur='$valeur'";

    Ou encore
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT * FROM g_info WHERE choix IN('$choix1', '$choix2') AND valeur='$valeur'";
    Je pense que ces codes marchent, mais personnellement j'évite le plus possible l'interprétation implicite des variables, ie au sein des doubles quotes. C'est source d'erreur si on remplace par des simples, c'est pas forcément lisible dans la coloration syntaxique, etc...

    Bref, préférer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo "voici le contenu de ma variable : " . $var;
    plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo "voici le contenu de ma variable : $var";
    Et pour ne pas faire complètement du hors sujet, je dirais que cette discipline m'a souvent fait repérer les erreurs dans mes requêtes.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  10. #10
    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
    D'après ce que je comprends, il cherche a faire un constructeur de requete via formulaire....

    En gros
    $choix1 est la colonne ou il va faire sa recherche
    $choix2 est la colonne qui servira d'opérateur
    $valeur est la valeur recherchée

    Donc ta requete devrait etre formulée ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete="SELECT* FROM g_info where ". $choix1. " ".$choix2." \"".$valeur"\""; //c'est la ou j'ai le probleme
    Attention a bien quoté le champ valeur... Et a faire un check au cas ou le champ $valeur est vide car ta requete plantera ou ne donnera rien
    Mais bon... Je d'emblée te dire que cela ne fonctionnera pas car ton formulaire n'est pas bon... Je m'explique :

    Si on prends ce bout de formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="choix1" >
    <option value="valopt1">Age</option>
    <option value="valopt2">Moyenne</option>
    </select>
    $choix1=$_POST['choix1']; va remonter soit valopt1 soit valopt1 et non Age ou Moyenne come tu semble le penser...

    Du cout il faudrais faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="choix1" >
    <option value="age">Age</option>
    <option value="moyenne">Moyenne</option>
    </select>
    Pareil pour choix2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="choix2" >
    <option value="<"><</option>
    <option value="!=">!=</option> 
    </select>
    Donc on reprends tout a zéro....
    Ton formulaire devrait donner ceci :
    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
     
    <html>
    <body>
    <font color=blue><h2 align=center>
    <u>Veuillez déterminer les critères de recherche !</h2></u></font>   <form action="recherche.php" method="POST">
    <table>
    <tr>
    <td>Critère :</td>
    <td><select name="choix1" >
    <option value="age">Age</option>
    <option value="moyenne">Moyenne</option>
    </select></td>
    <td> Opérateurs : </td>
    <td><select name="choix2" >
    <option value="<"><</option>
    <option value="!=">!=</option>
    </select></td>
    <td> Valeur :</td>
    <td>
    <input type=text name="valeur">
    </td>
    </tr>
    <tr>
    <td colspan="6"><input type=submit style="width:100%" name="Valider" value="Rechercher"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    Et ton script PHP devrait donner ceci :
    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
     
    <html>
    <body>
    <font color=blue><h2 align=center><u>Résultat !</h2></u></font>
    <CENTER>
    <table border=1>
           <tr>
              <th>Nom</th>
              <th>Prenom</th>
              <th>CNE</th>
              <th>AGE</th>
              <th>MOYENNE</th>
                   </tr>
    <?
    if (mysql_connect("localhost","root","")>0)
    echo"";
    else echo "connexion impossible ";
    if(mysql_select_db("ensas")==true) 
    echo "<br> ";
    else "selection de la base impossible ";
    $choix1=$_POST['choix1'];
    $choix2=$_POST['choix2'];
    $valeur=$_POST['valeur'];
    $requete="SELECT* FROM g_info where ".$choix1." ".$choix2." \"".$valeur."\";";
    $result=mysql_query($requete);
       do
         {
    ?>
           <tr>
              <td><? echo $enreg['NOM']; ?></td>
              <td><? echo $enreg['PRENOM']; ?></td>
              <td><? echo $enreg['CNE']; ?></td>
              <td><? echo $enreg['Age']; ?></td>
              <td><? echo $enreg['Moyenne']; ?></td>
           </tr>
    <?
        }while($enreg=mysql_fetch_array($result));
     
    ?>
    </table>
    </center>
    </body>
    </html>
    Normalement ceci devrait fonctionner
    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  11. #11
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Affichage des enregistrement a l'aide de plusieurs variable d'un formulaire !
    Merci bcq c'est exactement ce que je vx mais il ne connait pas les operateurs = et != je sais pas prq ca marchait seulemement pour >et < . mais donc tout les merci et si vous avez une reponse pour ma question je serais reconnaissante.Maria

  12. #12
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    Dans une requête SQL, le "different" s'écrit "<>", et pas comme en PHP "!=".
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  13. #13
    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
    Bon et bien c'est ta valeur $choix2 qui passe mal....
    Tu es bon pour une séance de debugage....

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $choix2=$_POST['choix2'];
     
    echo 'Choix 2 : ' . $choix 2 . '<br>';
    exit;
    Tu va avoir une grosse page blanche avec marqué Choix 2: et ce que le script lui auras récupéré....

    Si tu n'arrive pas a passer les = et != (ce qui est ettonant), alors tu devra utiliser des sortes d'allias (par exemple equal et notequal) dans les value des OPTION de ton select.
    Et dans ton script php tu devras faire un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ($_POST['choix2'] == 'equal') {$choix2 = '=';}
    else if ($_POST['choix2'] == 'notequal') {$choix2 = '!=';}
    else {$choix2 = $_POST['choix2'];}
    Ceci devrait régler ton probleme
    @+
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/02/2008, 16h17
  2. [delphi7][access][ado]pb d'affichage des enregistrements
    Par alibabas dans le forum Bases de données
    Réponses: 8
    Dernier message: 29/07/2006, 18h46
  3. Réponses: 8
    Dernier message: 28/03/2006, 16h52
  4. []Problème d'affichage des enregistrements dans un DataReport
    Par GeniuZ dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 05/01/2005, 16h52
  5. Réponses: 3
    Dernier message: 29/12/2003, 13h47

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