Requete SQL via select

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?!
Configuration: Mac OS X
Firefox 3.0.10

7 réponses

  1. 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.
    1. 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...
      1. 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> 
        
        1. 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?!
          1. 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).
            1. 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. ;)