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 :

probleme de code? [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut probleme de code?
    Salut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <HTML>
    	<BODY>
    		<fieldset>
    		<legend>Information personnelle</legend>
    		<form name="test" method="post" action="new 2.php">
    			Nom : <input type="text" maxlength="20" size="10" name="nom"><br>
    			Prénom : <input type="text" maxlength="20" size="10" name="prenom"><br>
    			Date naissance : <input type="date" name="datenaiss">
    			<br>Merci<br><br>
    			<input type="submit" name="envoyer" value="Envoyer"><input type="reset" name="retablir" value="Retablir">
    		</form>
    		</fieldset>
    	</BODY>
    </HTML>
    Voici ma page html. L'internaute saisira ses informations ensuit au submit ma page qui suit se lancera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?PHP
    	if(!empty($_POST))
    	{
    		$connexion = mysql_connect ("localhost","root","mysql") or die ("Erreur de connexion au serveur");
    			mysql_select_db ("test",$connexion);
    		if (isset($_POST['envoyer']))
    		{$nom=$_POST['nom']; 
    		$prenom=$_POST['prenom'];
    		$datenaiss=$_POST['datenaiss'];
    		$requete = "insert into donnees (Id,Nom,Prenom,DateNaissance values ('null','$nom','$prenom','$datenaiss')";
    		$resultat = mysql_query($requete) or die ('Problème d\'insertion');}
    	}
    ?>
    test étant le nom de ma base
    donnees le nom de mon unique table, le champ Id étant un auto_increment.
    J'essaye de rentrer des donnees dans ma table par mon formulaire, sa m'affiche tout le temps problème d' insertion.
    Quelqu'un pourrait-il m'aider? s'il vous plaît

  2. #2
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Par défaut
    Citation Envoyé par AmisNoob Voir le message
    Salut.
    Quelqu'un pourrait-il m'aider? s'il vous plaît
    changer votre code php par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?PHP
    	if(!empty($_POST))
    	{
    		$connexion = mysql_connect ("localhost","root","mysql") or die ("Erreur de connexion au serveur");
    			mysql_select_db ("test",$connexion);
    		if (isset($_POST['envoyer']))
    		{$nom=$_POST['nom']; 
    		$prenom=$_POST['prenom'];
    		$datenaiss=$_POST['datenaiss'];
    		$requete = "insert into donnees (Id,Nom,Prenom,DateNaissance) values ('','$nom','$prenom','$datenaiss')";
    		$resultat = mysql_query($requete) or die ('Problème d\'insertion');}
    	}
    ?>
    car le champ id est auto-increment et aussi votre clé primaire ...

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut
    Merci pour la réponse.
    Mais je l'est testé et sa me donne toujours le même problème
    a savoir : problème d'insertion, mais merci quand même c'est cool.
    Bah si sa se trouve c'est peut être moi mais jai testé retesté et encore et encore...
    Pour plus d'info, mes champ sont
    Id auto_increment
    Nom varchar(20)
    Prenom varchar(20)
    DateNaiss varchar(8)
    Est ce un probleme de ma table ou de ma requête ou de mon script ou autre?

  4. #4
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 491
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 491
    Par défaut
    salut,
    tu test bien si le bouton a ete clique (isset($_POST['envoyer']))
    mais tu ne test pas si les infos des autres postes ne sont pas vides.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if(!empty($_POST['nom']))
     $nom=$_POST['nom'];
    else
     $nom="rien";
    if(!empty($_POST['prenom']))
     $prenom=$_POST['prenom'];
    else
     $prenom="rien";
    if(!empty($_POST['datenaiss']))
     $datenaiss=$_POST['datenaiss'];
    else
     $datenaiss="rien";
    cela ne changera peu etre rien, mais separe bien ton texte brute des variables a concatener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "insert into donnees (Id,Nom,Prenom,DateNaissance) values ('','".$nom."','".$prenom."','".$datenaiss."')";
    sinon, affiche la requete generee, et teste la directement (copier/coller) sous phpmyadmin
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  5. #5
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Dans ta table, le nom de ton champ est DateNaissance ou DateNaiss ?
    C'est à dire ta requête doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "insert into donnees (Id,Nom,Prenom,DateNaissance) values ('','".$nom."','".$prenom."','".$datenaiss."')";
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "insert into donnees (Id,Nom,Prenom,DateNaiss) values ('','".$nom."','".$prenom."','".$datenaiss."')";
    Fred

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour, et bon Week-End

    Comme il t'a été indiqué tu as de nombreuses erreures de syntaxe,
    Mais j'en profites pour répéter ces régles
    non obligatoires mais recommandées:

    1) Toutes les valeurs POST GET SESSION etc... nous avons intéret a les regrouper en début de nos HTML puis n' utiliser ensuite que les variables équivalentes exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom pour $_POST["nom"]
    2) ayant fait cela ne pas utiliser EMPTY peut fiable mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($nom!=""  //===etc ...
    3) quand un index est auto incrémenté on ne le désigne jamais dans l'insertion !!

    Le résultat complet devrait étre
    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
     
     
    <?PHP
     
    if (isset($_POST["nom"])) $nom=htmlentities(trim($_POST["nom"]));
        else $nom="";
    if (isset($_POST["prenom"])) $prenom=htmlentities(trim($_POST["prenom"]));
        else $prenom="";
    if (isset($_POST["datenaiss"])) $datenaiss=htmlentities(trim($_POST["datenaiss"]));
        else $datenaiss="";
    if (isset($_POST["envoyer"])) $envoyer=htmlentities(trim($_POST["envoyer"]));
        else $envoyer="";
     
     
     if($nom!="" && $prenom!="" && $datenaiss!="" && $envoyer!="" )
    	{
      $connexion = mysql_connect ("localhost","root","mysql");
      mysql_select_db ("test",$connexion);
      $requete = "insert into `donnees` (`Nom`,`Prenom`,`DateNaissance`)
                  values ('$nom','$prenom','$datenaiss')";
    		$resultat = mysql_query($requete) or die ('Problème d\'insertion');
      mysql_close();
     
    	}
    ?>

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

Discussions similaires

  1. probleme de code
    Par fixouille90 dans le forum Access
    Réponses: 11
    Dernier message: 09/12/2005, 15h23
  2. probleme de code simple
    Par BFH dans le forum C
    Réponses: 18
    Dernier message: 28/10/2005, 18h57
  3. [VB.Net] Probleme popup code behind
    Par balibo dans le forum ASP.NET
    Réponses: 19
    Dernier message: 17/10/2005, 12h22
  4. probleme de code formulaire
    Par bachilbouzouk dans le forum ASP
    Réponses: 45
    Dernier message: 13/04/2005, 10h01
  5. [debutant] probleme de code :-(
    Par flogreg dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 16/08/2004, 18h20

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