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 :

Formulaire et BDD


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut Formulaire et BDD
    Bonjour, je dois créer un formulaire pour remplir une table dans une BDD. Les valeurs du formulaires ne s'inscrivent pas dans la BDD. Parcontre, si je mets directements les valeurs dans la requête SQL elles sont bien envoyées.
    La connexion vers ma BDD fonctionne.
    Merci de votre aide.
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    <center><b>Remplissage de la table</b></center></h1>
    <FORM method=post action="form.php">
    <h3><u>Completer le formulaire pour remplir la table :</u></h3>
    <TABLE BORDER=5>
     
    <TR>
    	<TD>Entrez le nom</TD>
    	<TD>
    	<INPUT type=text name="Name_test" >
    	</TD>
    </TR>
     
    <TR>
    	<TD>Entrez le Number</TD>
    	<TD>
    	<INPUT type=text name="Number_test" >
    	</TD>
     
    <TR>
    	<TD>Entrez la description</TD>
    	<TD>
    	<INPUT type=text name="Description_test" >
    	</TD>
    </TR>
     
    <TR>
    	<TD>Entrez le PartNumber</TD>
    	<TD>
    	<INPUT type=text name="PartNumber" >
    	</TD>
    </TR>
     
    <TR>
    	<TD>Entrez le num_EC</TD>
    	<TD>
    	<INPUT type=text name="num_EC" >
    	</TD>
    </TR>	
     
    	<TR>
    	<TD COLSPAN=2>
    	<INPUT type="submit" value="Envoyer">
    	</TD>
    </TR>
     
    </TABLE>
    </FORM>
     
     
    <?
    <?php
    $db = mysql_connect('127.0.0.1', 'root', '1234');  
    mysql_select_db('bdd',$db); 
     
    // Recuperation des valeurs :
     
    $Name_test = $_POST['Name_test'];
    $Number_test = $_POST['Number_test'];
    $Description_test = $_POST['Description_test'];
    $PartNumber = $_POST['PartNumber'];
    $num_EC = $_POST['num_EC'];
     
     
     
     
    // Insertion des valeurs :
    $insertion = "insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('$Name_test', '$Number_test', 
    '$Description_test','$PartNumber', '$num_EC')";
    mysql_query($insertion)
     
    ?>
     
     
    </body>
    </html>

  2. #2
    Membre confirmé
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Points : 586
    Points
    586
    Par défaut
    Les simples quotes en PHP n'interprêtent pas les variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $insertion = "insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('".$Name_test."', '".$Number_test."', 
    '".$Description_test."','".$PartNumber."', '".$num_EC."')";

  3. #3
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Regarde du côté de addslashes() si jamais ton contenu contient une apostrophe (') ça foire ta requête.

    Tu peux tester mes dire en faisant un echo de magic_quote pour vérifié si c'est activé ou pas.

    Un peu de lecture sur magic quote

    Si tu es au dessus de PHP 5.3, fait un mysql_real_escape_string() sur tes chaines.

    Une autre solution peut être d'utiliser la PDO.
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Toujours rien (jai testé ta requête) ... Pourtant quand je rentre directement les valeurs dans la requête elles sont bien enrengistrés dans la BDD!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_real_escape_string()
    je la mets où ?

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par SNY77 Voir le message
    Toujours rien ... Pourtant quand je rentre directement les valeurs dans la requête elles sont bien enrengistrés dans la BDD!
    Fait un "echo" de ta variable $insertion et exécute-la dans phpmyadmin ou tout autre outil, si t'as une erreur, ça sera plus compréhensible.

  6. #6
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    De même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM method=post action="form.php">
    Change plutot en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM method="post" action="form.php">
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    J'ai ça, sous MySQL Query Browser, je n'ai pas les enrengistrements en executant cette requête!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('1', '2', '3','', '')
    Apparament ils prends même pas les valeurs 4 et 5 ...
    Merci.

  8. #8
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    As-tu vraiment essayé le addslashes($Description_test) ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $Name_test = $_POST['Name_test'];
    $Number_test = $_POST['Number_test'];
    $Description_test = $_POST['Description_test'];
    $PartNumber = $_POST['PartNumber'];
    $num_EC = $_POST['num_EC'];
    Remplace le par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $Name_test = addslashes($_POST['Name_test']);
    $Number_test = addslashes($_POST['Number_test'];
    $Description_test = addslashes($_POST['Description_test']);
    $PartNumber = addslashes($_POST['PartNumber']);
    $num_EC = addslashes($_POST['num_EC']);
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Oui j'ai le même resultat en visualisant le resultat de la requête ...

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Personne ? Pourtant le formulaire à l'aide d'être très correct
    Merci...

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    J'ai protégé les valeurs (j'ai tout placé après la requête SQL d'insertion) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mysql_real_escape_string($Name_test, $db);
    mysql_real_escape_string($Number_test, $db);
    mysql_real_escape_string($Description_test, $db);
    mysql_real_escape_string($PartNumber, $db);
    mysql_real_escape_string($num_EC, $db);
    Mais ça me donne toujours le même résultat;

  12. #12
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Remplace ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Insertion des valeurs :
    $insertion = "insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('$Name_test', '$Number_test', 
    '$Description_test','$PartNumber', '$num_EC')";
    mysql_query($insertion)
    Par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    print_r($_POST);
    // Insertion des valeurs :
    $insertion = "insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('$Name_test', '$Number_test', 
    '$Description_test','$PartNumber', '$num_EC')";
    mysql_query($insertion)
    Donne moi la réponse
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  13. #13
    Membre confirmé
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par Simdu80 Voir le message
    Remplace ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Insertion des valeurs :
    $insertion = "insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('$Name_test', '$Number_test', 
    '$Description_test','$PartNumber', '$num_EC')";
    mysql_query($insertion)
    Par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    print_r($_POST);
    // Insertion des valeurs :
    $insertion = "insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('$Name_test', '$Number_test', 
    '$Description_test','$PartNumber', '$num_EC')";
    mysql_query($insertion)
    Donne moi la réponse

    Ca ne peut pas marcher, les variables PHP entre simples quotes ne sont pas interprétées. (mais d'accord avec le print_r())

  14. #14
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Citation Envoyé par Isythiel Voir le message
    Ca ne peut pas marcher, les variables PHP entre simples quotes ne sont pas interprétées.
    Ben si ça marche, les quotes sont là pour MySQL. PHP les interprête grâce à celle ci :
    Logiquement ça devrait marcher
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  15. #15
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    ça me donne ça en mettant des valeurs de 1 à 5 dans le formulaire (ordre des champs ...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1 [Number_test] => 2 [Description_test] => 3 [PartNumber] => 4 [num_EC] => 5 ) insert into test_sheet(Name_test, Number_test, Description_test, PartNumber, num_EC) values ('1', '2', '3','', '')

  16. #16
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    En executant la requête telle qu'elle sous Mysql Query Browser, j'obtiens ça :
    Incorrect integer value: '' for column 'num_EC' at row 1

  17. #17
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Bizarre...

    Essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $insertion = "insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('".$_POST['Name_test']."', '".$_POST['$Number_test']."', 
    '".$_POST['$Description_test']."','".$_POST['$PartNumber']."', '".$_POST['$num_EC']."')";
    echo $insertion;
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  18. #18
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Citation Envoyé par SNY77 Voir le message
    En executant la requête telle qu'elle sous Mysql Query Browser, j'obtiens ça :
    Incorrect integer value: '' for column 'num_EC' at row 1
    Ok, donc pour chaque INT que tu as mis dans ta table, supprime els quotes

    ça devrait donner ça :

    $insertion = "insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('$Name_test', $Number_test,
    '$Description_test',$PartNumber, $num_EC)";

    Vérifie que toutes ces entrée soit bien des chiffres/nombres.
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  19. #19
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Ca me donne ça maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into test_table(Name_test, Number_test, Description_test, PartNumber, num_EC) values ('1', 2, '3',, )

  20. #20
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    J'ai un peu modifier mon programme, j'obtien ça pour l'echo de la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('1', '2', '3','4', '5')

Discussions similaires

  1. [SGBD] Traitement Données Formulaire Vers BDD Mysql
    Par Thierry8 dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 29/03/2006, 23h22
  2. [SimpleXML] Générer un XML grâce à un formulaire (sans BDD)
    Par greg1386 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 29/01/2006, 01h04
  3. formulaire ASP bdd access recherche
    Par ghita269 dans le forum ASP
    Réponses: 8
    Dernier message: 19/11/2005, 23h57
  4. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 11h19
  5. problème avec formulaire et BDD
    Par pmboutteau dans le forum ASP
    Réponses: 1
    Dernier message: 24/08/2005, 10h56

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