Valeur liste déroulante dans requete sql ?
Résolu/Fermé
Jean_2
Messages postés
245
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
-
26 nov. 2007 à 12:46
MaamuT Messages postés 174 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 20 décembre 2014 - 26 nov. 2007 à 17:36
MaamuT Messages postés 174 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 20 décembre 2014 - 26 nov. 2007 à 17:36
A voir également:
- Valeur liste déroulante dans requete sql ?
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Google sheet liste déroulante - Accueil - Guide bureautique
- Supprimer liste déroulante excel - Forum Excel
- Excel si valeur dans liste alors ✓ - Forum Excel
13 réponses
MaamuT
Messages postés
174
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
20 décembre 2014
184
26 nov. 2007 à 14:15
26 nov. 2007 à 14:15
Normalement, les variables de type $_POST[''] ou $_GET[''] ne sont pas utilisables directement dans une requête, il faut les récupérer dans une autre avant:
$maVariable = $_GET['maVariable'];
$maVariable = $_GET['maVariable'];
Jean_2
Messages postés
245
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
12
26 nov. 2007 à 14:29
26 nov. 2007 à 14:29
d'accord, je ne savais pas...
en tout cas, sur mon serveur, ça marche...
merci pour l'info en tout cas
en tout cas, sur mon serveur, ça marche...
merci pour l'info en tout cas
MaamuT
Messages postés
174
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
20 décembre 2014
184
26 nov. 2007 à 15:24
26 nov. 2007 à 15:24
La variable tri est affectée au formulaire lui même, ce n'est pas une variable utilisable, elle ne veut rien dire, d'ailleurs, elle ne doit rien valoir d'après moi…
Ensuite, dans ta requête sql, n'échappe pas tes variables, tu colle tout entre des guillemets doubles.
Pour vérifier, tu peut faire un echo de la requête pour vérifier qu'elle est bien construite.
Ensuite, dans ta requête sql, n'échappe pas tes variables, tu colle tout entre des guillemets doubles.
Pour vérifier, tu peut faire un echo de la requête pour vérifier qu'elle est bien construite.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
26 nov. 2007 à 15:43
26 nov. 2007 à 15:43
Jean : reprends ce que je t'ai dit au début, et mets le "name" pas sur le FORM mais sur le SELECT !
Comme dans mon premier post.
Et sinon, pour MaamuT, je suis désolé mais ton histoire de config de php qui interdit les POST dans un texte de requête ne tient pas debout, c'est même plutôt n'importe quoi... Une requête n'est, pour php, qu'une chaine de caractère comme une autre. On la concatène comme on veux, y a pas d'histoire de config là-dedans !
Comme dans mon premier post.
Et sinon, pour MaamuT, je suis désolé mais ton histoire de config de php qui interdit les POST dans un texte de requête ne tient pas debout, c'est même plutôt n'importe quoi... Une requête n'est, pour php, qu'une chaine de caractère comme une autre. On la concatène comme on veux, y a pas d'histoire de config là-dedans !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
26 nov. 2007 à 12:58
26 nov. 2007 à 12:58
Bonjour,
Il faut donner un nom ("name") à ton select, par exemple : <select onchange="submit()" name="tri">
Ensuite, dans ma_page.php, la variable $_POST["tri"] vaut le contenu de la liste.
Donc tu fais ta requête :
$requete = "...GROUP BY ma_table".$_POST["tri"]
Xavier
Il faut donner un nom ("name") à ton select, par exemple : <select onchange="submit()" name="tri">
Ensuite, dans ma_page.php, la variable $_POST["tri"] vaut le contenu de la liste.
Donc tu fais ta requête :
$requete = "...GROUP BY ma_table".$_POST["tri"]
Xavier
Jean_2
Messages postés
245
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
12
26 nov. 2007 à 13:19
26 nov. 2007 à 13:19
il doit y avoir une petite erreur de syntaxe car là, ça ne marche pas, ma requete (je l'ai simplifiée) :
$reponse = mysql_query("SELECT ma_table.* FROM ma_table WHERE ma_table.numero_region='" . $_GET['numero_region'] . "' GROUP BY ma_table.là où je veux receuillir la value");
???
$reponse = mysql_query("SELECT ma_table.* FROM ma_table WHERE ma_table.numero_region='" . $_GET['numero_region'] . "' GROUP BY ma_table.là où je veux receuillir la value");
???
Jean_2
Messages postés
245
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
12
26 nov. 2007 à 14:01
26 nov. 2007 à 14:01
actuellement, j'ai :
$reponse = mysql_query("SELECT ma_table.* FROM ma_table WHERE ma_table.numero_region='" . $_GET['numero_region'] . "' GROUP BY ma_table.'" . $_POST['tri']"'");
et ça ne marche pas...
par contre, quand je met je met ville (l'un des critères de tri) à la place de .'" . $_POST['tri']"' là ça marche
quelkqu'un pour m'aider ?
$reponse = mysql_query("SELECT ma_table.* FROM ma_table WHERE ma_table.numero_region='" . $_GET['numero_region'] . "' GROUP BY ma_table.'" . $_POST['tri']"'");
et ça ne marche pas...
par contre, quand je met je met ville (l'un des critères de tri) à la place de .'" . $_POST['tri']"' là ça marche
quelkqu'un pour m'aider ?
Jean_2
Messages postés
245
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
12
26 nov. 2007 à 14:17
26 nov. 2007 à 14:17
non non, le $_GET fonctionne bien ça c'est sur
(testé avant)
(testé avant)
MaamuT
Messages postés
174
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
20 décembre 2014
184
26 nov. 2007 à 14:22
26 nov. 2007 à 14:22
Pas sur tous les serveurs PHP, si le php.ini est bien fait, il ne les accepteras pas…
Ce n'est pas une constante, certains acceptent, d'autres non !!
En tous cas, je ne ferais pas l'économie sur ce point là…
Ce n'est pas une constante, certains acceptent, d'autres non !!
En tous cas, je ne ferais pas l'économie sur ce point là…
Jean_2
Messages postés
245
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
12
26 nov. 2007 à 14:45
26 nov. 2007 à 14:45
j'ai donc créé :
<?php
$numero_region = $_GET['numero_region'];
$tri = $_POST['tri'];
?>
et remplacé ma requete :
$reponse = mysql_query("SELECT ma_table.* FROM ma_table WHERE ma_table.numero_region='" . $_GET['numero_region'] . "'GROUP BY estaminet. '" . $tri "' ")
mon formulaire est le suivant :
<FORM name="tri" method="post" action="ma_page.php">
<select onchange="submit()">
<option value="note_moyenne">Par note moyenne</option>
<option value="ville">Par commune</option>
<option selected="selected" value="alpha">Par odre alphabétique</option>
</select>
</FORM>
Je signale que le formulaire recharge la page dans laquelle il se trouve.
mais ça ne marche pas !!!
<?php
$numero_region = $_GET['numero_region'];
$tri = $_POST['tri'];
?>
et remplacé ma requete :
$reponse = mysql_query("SELECT ma_table.* FROM ma_table WHERE ma_table.numero_region='" . $_GET['numero_region'] . "'GROUP BY estaminet. '" . $tri "' ")
mon formulaire est le suivant :
<FORM name="tri" method="post" action="ma_page.php">
<select onchange="submit()">
<option value="note_moyenne">Par note moyenne</option>
<option value="ville">Par commune</option>
<option selected="selected" value="alpha">Par odre alphabétique</option>
</select>
</FORM>
Je signale que le formulaire recharge la page dans laquelle il se trouve.
mais ça ne marche pas !!!
Jean_2
Messages postés
245
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
12
26 nov. 2007 à 15:37
26 nov. 2007 à 15:37
1/ alors comment puis-je faire pour récupérer la valeur choisie dans ma liste déroulante ?
2 / la requete commence par un guillement double. Si je met un guillemet double dans ma requete, ça va être interprété comme une fin de requete non ?
merci à toi
2 / la requete commence par un guillement double. Si je met un guillemet double dans ma requete, ça va être interprété comme une fin de requete non ?
merci à toi
MaamuT
Messages postés
174
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
20 décembre 2014
184
26 nov. 2007 à 16:09
26 nov. 2007 à 16:09
1/ Bien renseigner le nom du select.
2/ Tu insère tes variable tel quel, sans les échaper ni sortir, sans concaténation, directement dedans:
$sql = "SELECT * FROM maTable WHERE nom = $nom and prenom = $prenom";
PS @ Reivax962: Pas la peine d'être agressif, mon serveur perso n'accepte pas ces variables et il est configuré pour afficher un max d'erreurs, E_ALL | E_NOTICE, ce doit être pour ça.
2/ Tu insère tes variable tel quel, sans les échaper ni sortir, sans concaténation, directement dedans:
$sql = "SELECT * FROM maTable WHERE nom = $nom and prenom = $prenom";
PS @ Reivax962: Pas la peine d'être agressif, mon serveur perso n'accepte pas ces variables et il est configuré pour afficher un max d'erreurs, E_ALL | E_NOTICE, ce doit être pour ça.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
>
MaamuT
Messages postés
174
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
20 décembre 2014
26 nov. 2007 à 16:15
26 nov. 2007 à 16:15
Je ne voulais pas être aggressif, désolé.
Mais si ton serveur ne les accepte pas, à mon avis c'est surtout parce que tu ne les concatènes pas, mais tente de les insérer directement dans la chaîne de caractère, ce qui n'est pas correctement compris par l'interpréteur php !
Dis-moi si je me trompe, mais tu essaies de faire :
$variable = "untexte $_POST['chose']";
au lieu de
$variable = "untexte ".$_POST['chose'];
Non ?
Mais si ton serveur ne les accepte pas, à mon avis c'est surtout parce que tu ne les concatènes pas, mais tente de les insérer directement dans la chaîne de caractère, ce qui n'est pas correctement compris par l'interpréteur php !
Dis-moi si je me trompe, mais tu essaies de faire :
$variable = "untexte $_POST['chose']";
au lieu de
$variable = "untexte ".$_POST['chose'];
Non ?
Jean_2
Messages postés
245
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
12
26 nov. 2007 à 15:46
26 nov. 2007 à 15:46
donc c'était ça...
la vieille erreur...
merci, je teste
la vieille erreur...
merci, je teste
Jean_2
Messages postés
245
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
12
26 nov. 2007 à 17:22
26 nov. 2007 à 17:22
c'est bon, vos 2 méthodes fonctionnent. merci
MaamuT
Messages postés
174
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
20 décembre 2014
184
26 nov. 2007 à 17:36
26 nov. 2007 à 17:36
Super, voilà une bonne chose de faite ;)