Requete SQL via select

Fermé
DjoDjo1984 Messages postés 3 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 6 juin 2009 - 6 juin 2009 à 16:08
 Utilisateur anonyme - 17 juin 2009 à 19:18
Bonjour,

J'ai un soucis avec un select:

Voici le code de mon formulaire:

<form method="POST">
<select name="choix" class="select">
<option value="vehicules" selected="selected">Véhicules</option>
<option value="formations" >Formations</option>
<option value="unites" >Unités</option>
</select>
</form>

Et j'aimerais selon le choix de l'utilisateur faire une requete SQL avec comme attribut la value de mon champ...

Comment puis-je faire ca?!

7 réponses

Utilisateur anonyme
6 juin 2009 à 16:10
Bonjour,
Pour récupérer la valeur d'un select :
$valeur=$_POST['choix'];

Dans valeur, tu auras soit : vehicules, formations ou unites.

Après, tu n'as plus qu'à insérer $valeur dans ta requête.
0
DjoDjo1984 Messages postés 3 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 6 juin 2009
6 juin 2009 à 16:18
J'ai fais comme ca mais ca ne fonctionne pas...

<form method="post">
<select name="choix" class="select">
<option value="vehicules" selected="selected">Véhicules</option>
<option value="formations" >Formations</option>
<option value="unites" >Unités</option>
</select>
</form>
<div class="symbol_menu2" id="vehicules">
<?php
$valeur = $_POST['choix'];
// on se connecte à MySQL
echo ($valeur);
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('symbols',$db);
// on crée la requête SQL
$sql = 'SELECT lien FROM '.$valeur;
echo $sql;
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req)){
// on affiche les informations de l'enregistrement en cours
echo '<img src="'.$data['lien'].'">';
}
// on ferme la connexion à mysql
mysql_close();
// ------ choix des symboles --------
?>
</div>

Il me dit que j'ai une erreur de synthaxe...

Et au chargement de la page, $valeur ne vaut rien...
0
Utilisateur anonyme
6 juin 2009 à 16:22
C'est tout à fait normal que ça ne fonctionne pas au premier chargement de la page, c'est le soucis de faire un formulaire et son traitement dans une même page.
Pour éviter ce problème, il suffit de rajouter autour de :
$valeur = $_POST['choix'];
// on se connecte à MySQL
echo ($valeur);
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('symbols',$db);
// on crée la requête SQL
$sql = 'SELECT lien FROM '.$valeur;
echo $sql;
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req)){
// on affiche les informations de l'enregistrement en cours
echo '<img src="'.$data['lien'].'">';
}
// on ferme la connexion à mysql
mysql_close();
// ------ choix des symboles -------- 

Ceci :
if isset($_POST['choix']) {
// Tu mets le code du-dessus dedans
}

De plus, pour que ton formulaire fonctionne :
<form method="post">
<select name="choix" class="select">
<option value="vehicules" selected="selected">Véhicules</option>
<option value="formations" >Formations</option>
<option value="unites" >Unités</option>
</select>
<input type="submit" name="Valider" value="Envoyer">
</form> 
0
DjoDjo1984 Messages postés 3 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 6 juin 2009
6 juin 2009 à 16:28
Merci bien ca fonctionne maintenant!

Par contre la feinte c'est que j'aimerais faire la même chose mais sans bouton!

Javascript?!?! Ou il y a un autre moyen?!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
6 juin 2009 à 16:34
Effectivement, ça doit être possible avec du Javascript, mais là, je n'ai que des notions.
Peut-être avec une fonction qui permet de récupérer le nom de l'option sur lequel on clique (onClick).
0
comment acceder au base de donnes Oracle avec Flash
0
Utilisateur anonyme
17 juin 2009 à 19:18
Bonjour,
Ton message n'a rien à voir avec le topic. Ici, on parle de MySQL et non de Oracle. Donc, direction créer un nouveau sujet. ;)
0