Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2006, 19h37   #1
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
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 :
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 :
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.
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 19h45   #2
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
Je comprend pas ce que tu veut dire?
__________________
manganimes (en construction) -
zemanga
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 19h47   #3
Membre émérite
 
Avatar de viviboss
 
Inscription : août 2006
Messages : 943
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : août 2006
Messages : 943
Points : 941
Points : 941
Dans ta requête, il faut que tu mettes ton WHERE beaucoup plus explicite !!!

Code :
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 :
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
-------------------------
viviboss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 19h55   #4
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
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
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 21h54   #5
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
Par défaut Encore Pas de reponse

Que dois je faire pour utiliser des variables dans la clause where
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 01h38   #6
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Sans doute un
Code php :
$requete="SELECT * FROM g_info WHERE (choix='$choix1' OR choix='$choix2') AND valeur='$valeur'";

Ou encore
Code php :
$requete="SELECT * FROM g_info WHERE choix IN('$choix1', '$choix2') AND valeur='$valeur'";
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 07h34   #7
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
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
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 09h36   #8
Membre émérite
 
Avatar de viviboss
 
Inscription : août 2006
Messages : 943
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : août 2006
Messages : 943
Points : 941
Points : 941
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
-------------------------
viviboss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 09h45   #9
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Citation:
Envoyé par Xunil
Sans doute un
Code php :
$requete="SELECT * FROM g_info WHERE (choix='$choix1' OR choix='$choix2') AND valeur='$valeur'";

Ou encore
Code php :
$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 :
 echo "voici le contenu de ma variable : " . $var;
plutôt que
Code :
 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.
s.n.a.f.u est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 10h11   #10
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
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 :
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 :
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 :
1
2
3
4
5
 
<select name="choix1" >
<option value="age">Age</option>
<option value="moyenne">Moyenne</option>
</select>
Pareil pour choix2 :
Code :
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 :
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 :
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
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 10h46   #11
Membre du Club
 
Inscription : novembre 2006
Messages : 304
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 304
Points : 44
Points : 44
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
Maria1505 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 11h04   #12
Membre émérite
 
Avatar de viviboss
 
Inscription : août 2006
Messages : 943
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : août 2006
Messages : 943
Points : 941
Points : 941
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
-------------------------
viviboss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 11h17   #13
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Bon et bien c'est ta valeur $choix2 qui passe mal....
Tu es bon pour une séance de debugage....

Essaie ceci :
Code :
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 :
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
@+
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h00.


 
 
 
 
Partenaires

Hébergement Web