Probleme d'insertion avec ma requette

Résolu
cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011 - 20 mars 2009 à 10:10
cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011 - 21 mars 2009 à 09:32
bonjour,
voici un bout de code qui me permet d'enregistrer un utilisateur dans ma table 'UTILISATEURS' à partire du fichier 'enregistreruser.php'

<?php
$grpeuser=$_POST['groupeuser'];
$nomuser=$_POST['nomuser'];
$prenomuser=$_POST['prenomuser'];
$identifiantuser=$_POST['identifiantuser'];
$motpasseuser=$_POST['motdepasseuser'];
$emailuser=$_POST['emailuser'];

mysql_connect("localhost", "root", "") or die ("erreur de connexion à la base de données");
mysql_select_db("projetcourier") or die ("erreur de connection ");
$req="select id_groupe from GROUPES where  description_groupe= '$grpeuser' ";
$rep=mysql_query($req);
$ligne=mysql_fetch_array($rep);
$id_groupe=$ligne['id_groupe'];

mysql_connect("localhost", "root", "") or die ("erreur de connexion à la base de données");
mysql_select_db("projetcourier") or die ("erreur de connection ");
$req=mysql_query(" insert into UTILISATEURS values ('', '$nomuser', '$prenomuser', '$identifiantuser', '$motpasseuser', '$emailuser', '$id_groupe') ");

mysql_close();

echo" l'utilisateur à ete correctement ajouté ";

?>


voici le formulaire qui appelle ce fichier à partir du fichier :

  <form method="post" action="enregistreruser.php">
  
  <fieldset>
  <legend> utilisateur </legend> 
     ----

    <label> groupe utilisateur </label>
      <select name="groupeuser">
       
        <?php
       
        mysql_connect("localhost", "root", "") or die ("erreur de connexion à la base de données");
        mysql_select_db("projetcourier");
        $req= "select * from GROUPES";
        $rep= mysql_query($req);
        if ($rep)
        {
       
        while ($ligne1=mysql_fetch_row($rep) )
         {
          $lgn=$ligne1[1];
          echo " <option value=$lgn> $lgn </option> ";
         }
        }
        mysql_close();
      ?>
      </select>    ,
    ,
 
  ----

    <label> nom </label>,
    ,
    <label> prenom </label>,
    ,
 
  ----

    <label> identifiant </label>,
    ,
    <label> mot de passe </label>,
    ,
 
  ----

    <label> e-mail </label>,
    ,
   

  </fieldset>
   
   
  </form> 



mais seulement l'enregistrement d'un nouveau utilisateur ne marche que lorsque la valeurs du champ 'groupe utilisateur' du formulaire est une chaine de caracteres en un mot ( par exemple : administrateur, receptionniste) et ne fonctionne pas quand la valeur de ce champ est un chaine de caractere à plusieurs mots separes par des espaces (exemple: chef des operations, directeur de services)

d'ou peut venir le probleme ? j'utilise wamp 2.0

merci d'avance.

2 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 mars 2009 à 18:54
Hello,

echo '<option value="'.$lgn.'">'.$lgn.'</option>';

Il faut se mettre à la place de l'interpréteur HTML. Il fait quoi ?
Bah, il lit...
< : ah, une balise va venir apparemment...
option : ah, je connais, c'est une...option, super.
espace : j'attends autre chose donc
value : un attribut
= : une assignation pour la valeur de l'attribut
et là...les ennuis commencent :
<option value=mon groupe>
Donc...
mon : tien, j'ai pas de délimiteur...donc mon est ma valeur
espace : ok, j'attends autre chose, un attribut ou le chevron fermant
groupe : un attribut donc
> : ah ben je dois fermer la balise ouvrante.

Alors que :
<option value="mon groupe">
Après le égal
" : ah, un délimiteur, donc tant que je ne rencontre pas le même, c'est la valeur de mon attribut
mon : valeur
espace : toujours la valeur
groupe : toujours la valeur
" : la valeur est terminée. Va valeur de mon attribut value est donc : mon groupe

Voilà voilà...un chtit tour sur un tuto sur le fonctionnement du HTML serait approprié.
3
cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011
21 mars 2009 à 09:32
effectivement en mettant plutot : echo '<option value="'.$lgn.'">'.$lgn.'</option>';
ça marche tres bien.
merci bien
0
Rejoignez-nous