Valeur liste déroulante dans requete sql ?
Résolu
Jean_2
Messages postés
245
Date d'inscription
Statut
Membre
Dernière intervention
-
MaamuT Messages postés 174 Date d'inscription Statut Membre Dernière intervention -
MaamuT Messages postés 174 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai 1 ptit souci qui à première vue, ne sont pas bien compliqué :
Sur une meme page de mon site, j'ai une liste déroulante et une requete SQL.
Comment receuillir la valeur de ma liste déroulante dans ma requete SQL ?
liste réroulante :
<FORM method="post" action="ma_page.php">
<select onchange="submit()">
<option value="note_moyenne">Par note moyenne</option>
<option value="ville">Par commune</option>
<option value="nom">Par odre alphabétique</option>
</select>
</FORM>
requete : ...GROUP BY ma_table.value_ de_l_option_choisie
Merci à vous
Bon appétit
J'ai 1 ptit souci qui à première vue, ne sont pas bien compliqué :
Sur une meme page de mon site, j'ai une liste déroulante et une requete SQL.
Comment receuillir la valeur de ma liste déroulante dans ma requete SQL ?
liste réroulante :
<FORM method="post" action="ma_page.php">
<select onchange="submit()">
<option value="note_moyenne">Par note moyenne</option>
<option value="ville">Par commune</option>
<option value="nom">Par odre alphabétique</option>
</select>
</FORM>
requete : ...GROUP BY ma_table.value_ de_l_option_choisie
Merci à vous
Bon appétit
A voir également:
- Valeur liste déroulante dans requete sql ?
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Supprimer liste déroulante excel - Forum Excel
- Liste code ascii - Guide
13 réponses
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'];
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
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.
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
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
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");
???
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 ?
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 !!!
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
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.
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 ?