Formulaire (select) avec Switch

Bonjour,

J'ai un petit problème avec la fonction switch, je part d'un formulaire simple

<form method="POST" action="admin.php">
<select name="categorie">
<option value="categorie 1">categorie 1</option>
<option value="categorie 2">categorie 2</option>
<option value="categorie 3">categorie 3</option>
</select>
Titre de la souscategorie : <input type="texte" name="titresouscategorie"> <input type="submit" value="ok"/>
</form>

je choisi la categorie dans laquelle je veux mettre une souscategorie, ensuite je me sert d'un switch pour insérer la souscategorie dans ma BDD, la suite du code est ceci :

...connection mysql....
$categorie = $_POST['categorie'];
$titresouscategorie = $_POST['titresouscategorie'];
switch ($categorie)
{
case "multimedia":
mysql_query("INSERT * INTO souscategoriemulti VALUES ('', '$titresouscategorie'");
break;
case "jeux":
mysql_query("INSERT * INTO souscategoriejeux VALUES ('', '$titresouscategorie'");
break;
case "mode":
mysql_query("INSERT * INTO souscategoriemode VALUES ('', '$titresouscategorie'");
break;
}

mais sa marche pas rien ne s'insère dans ma BDD quelqu'un peut-il m'aider je suis presque sur que le probleme vient du switch.
Configuration: Mac OS X
Firefox 3.0.11

5 réponses

  1. Bonjour

    Avant ton switch, fais des echo $categorie et $titresouscategorie pour être sûr que les données du formulaire sont bien reçues.
    Ensuite, ajoute à chaque appel à mysql_query un or die (mysql_error()); pour voir la cause de l'erreur
    1. <select name="categorie">
      <option value="categorie 1">categorie 1</option>
      <option value="categorie 2">categorie 2</option>
      <option value="categorie 3">categorie 3</option>
      </select>


      ta liste va te renvoyer categorie 1 ou 2 ou 3

      hors toi tu bases ton switch sur
      multimedia, jeux, mode

      soit tu modifies les values de ta liste soit les case multimedia etc..pour mettre en concordance
      1. Hello,
        Déjà d'aucun système SGBD je ne connais cette syntaxe...>mysql_query("INSERT * INTO souscategoriemulti VALUES ('', '$titresouscategorie'");

        Je préférerais mettre
        $sql = mysql_query("INSERT INTO souscategoriemulti (`champ1`,`champ2`,`champ3`) VALUES ('val1', '$titresouscategorie','val3'");
        Conseil : Gérer un maximum de valeurs par défaut coté base de données (ex date création de type timestamp avec NOT NULL et valeur par défaut current timestamp en case à cocher).

        Ces indications conviennent bien à MySQL..
        1. mysql_query("INSERT * INTO souscategoriemulti VALUES ('', '$titresouscategorie'");

          marche mais SANS l'étoile !
          1. Ahh oui, ça doit etre la première méthode. Tu as raison Alain_42
            Par contre attention si tu rajoute ou supprime des champs dans cette table ça pose prob après...