IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Impossible d'insérer dans ma table via formulaire [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 107
    Points : 54
    Points
    54
    Par défaut Impossible d'insérer dans ma table via formulaire
    bonjour je mets en place un formulaire assez simple pour renseigner une table d'une BDD. La table contient 3 champ(id, nom, prenom) avec id clé primaire avec auto incrément.
    Je m'assure dans mon code que les champs nom et prenom contiennent des valeurs.
    Mais lorsque je cliqe sur envoyer(bouton), j'ai un message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    impossible : insert into membre ('nom','prenom') values ('nom1','prenom1');
    Ci joint tout mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <?php
    $baseformulaire=mysqli_connect('localhost','root',' ',$baseformulaire) or die('echec connection');
     $msg=' ';	
    	if(isset($_POST['envoyer'])){	
    		$erreurs=false;
    		$nom=htmlspecialchars($_POST['nom']);
    		if(empty($_POST['nom'])){
    			$erreurs=true;
    			$msg='le nom doit pas être vide';
    		}
    		$prenom=htmlspecialchars ($_POST['prenom']);	
    		 if(strlen($_POST['prenom'])<3){
    			$erreurs=true;
    			$msg='le prenom dooit être supérieur à 3';
    		 }
    	   }else {
    			 $nom=' ';
    			 $prenom= ' ';
    			 $erreurs=true;
    			}
     
    		if($erreurs==false){
    		 foreach($_POST as $key => $val){
    		  $$key=mysqli_real_escape_string($baseformulaire, trim($val));
    		 }
      $requete="insert into membre ('nom','prenom') values ('$nom','$prenom');";
      mysqli_query($baseformulaire, $requete) or die ("impossible : $requete");
      header('Location : mapage.php');
    }
     
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      	<meta http-equiv="content-type" content="text/html; charset=utf-8">
      		<title>Formulaire Test</title>
      		<style type="text/css">
      		<!--
       	label  {display: block; float: left; width: 200px;}
      		//-->
      		</style>
      </head>
      	<body>
      	<?php
       	if ($erreurs==true){
       	echo $msg;
      	   }
      	 ?>  
      <form method="post">
      <label for="nom">Nom</label> <input name="nom" id="nom" type= "text" value="<?php echo $nom; ?>"/><br/>
     <label for="prenom">Prenom</label> <input name="prenom" type= "text" id="prenom" value="<?php echo $prenom;?>"/><br/>
      <input type="submit" name="envoyer" value="envoyer"/>
       </form>
    	<?php   	   
      	   if ($erreurs==false){
      	    echo 'bien joué';
      	    }
      	 ?>   
      	 </body>
      	 </html>
    A priori ma requête d'insertion est bonne.
    Merci de bien me guider

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="insert into membre (nom,prenom) values ('$nom','$prenom')";

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pas de guillemets autour des noms de colonnes (ou alors il faut utiliser `):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $requete="insert into membre (nom,prenom) values ('$nom','$prenom');";

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 107
    Points : 54
    Points
    54
    Par défaut
    ok ca marche

    Aussi, je me rend s compte que la condition de test du champ vide ne fonctionne pas .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $nom=htmlspecialchars($_POST['nom']);
    		if(empty($_POST['nom'])){
    			$erreurs=true;
    			$msg='le nom doit pas être vide';
    		}
    Lorsque je fais mes tests, quand je ne rempli pas le champ nom, j'ai pas de message. Ce que j'ai pourtant codé

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton code fonctionne pourtant.

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 107
    Points : 54
    Points
    54
    Par défaut
    J'ai été obligé de fermer mon navigateur.
    Prendre soin de copier collé mon fichier.php dans mon éditeur de texte avant de supprimer monfichier.php du repertoire www ou il se trouvait.
    J'ai ensuite re-enregistré mon fichier collé fichiernew.php pour que ca marche.

    J'ai deja rencontré ce problème (lorsque j'apporte des modifications dans mon code php ou xhtml) et je n'ai jamais su trop pourquoi.

    Pour l'heure ca marche.
    Bien merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recherche dans une table via formulaire
    Par kbahj dans le forum VBA Access
    Réponses: 10
    Dernier message: 17/08/2011, 08h50
  2. [MySQL] Problème insertion de données dans une table (via formulaire)
    Par bond70 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/04/2010, 16h48
  3. comment insérer des données dans la table via le formulaire
    Par justintak dans le forum Visual Studio
    Réponses: 1
    Dernier message: 16/10/2009, 15h40
  4. insérer des valeur dans une table via un formulaire
    Par horkets dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 18/07/2008, 20h47
  5. Réponses: 3
    Dernier message: 23/04/2006, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo