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 :

ecrire dans une table une info présente dans un formulaire. [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut ecrire dans une table une info présente dans un formulaire.
    Bonsoir le forum, je me permet de revenir sur un post précédent, j'ai passé l'aprés midi entier a lire pleins de tutos environs 17 (des PHP, des SQL, etc....) et aucun ne répond a mon PB (il est possible que je n'ai pas sur voir la réponse).

    Donc je me permet de reposter mon probleme.

    J'ai un formulaire qui contient un champ (NOM) et un bouton valider.

    Je souhaiterai qu'en remplissant le champ et en cliquant sur le bouton valider, l'info dans le champ soit enregistrée dans une table, en vérifiant si la table existe ou pas.


    Voici les début de code :

    Création d'une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    $server = "mysql.axs-fr.net"; 
    $user = "******"; 
    $password = "******"; 
    $base = "******"; 
    mysql_connect($server,$user,$password); 
    mysql_select_db($base); 
     
    mysql_query("CREATE TABLE joueurs ( NOM text NOT NULL, POSITION text NOT NULL) TYPE=MyISAM")or die (mysql_error()) ; 
    ?>
    voici le code dui formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <body> 
    <form method="post" action="............" style="padding: 0"> 
    <input type="text" name="NOM" size="40" value="............."> </body></htm>
    1 - Je ne sais pas comment coder l'envoi de l'information saisie dans le champ nom en l'enregitrant dans une table.
    2 - Je ne sais pas comment coder la vérifcation de l'existance d'une table ou pas.

    Je vous remercie du fond du coeur pour toute l'aide que vous pourrez m'apporter, et surtout merci d'avoir pris le temps de me lire.

    Bonsoir le forum

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut Re: ecrire dans une table une info présente dans un formulai
    Citation Envoyé par kaolivier
    j'ai passé l'aprés midi entier a lire pleins de tutos environs 17 (des PHP, des SQL, etc....) et aucun ne répond a mon PB (il est possible que je n'ai pas sur voir la réponse).
    Ca, c'est déjà très bien
    1) Pour récupérer la valeur saisie dans ton champ nom, tu dois passer par $_POST['NOM'].
    2) Tu valides cette valeur (le champ est-il renseigné ? Contient-il les bons caractères...).
    3) Tu passes ta valeur par mysql_real_escape_string() pour éviter les injections SQL.
    4) Tu vérifies la présence de ta table avec mysql_list_tables().
    5) Tu insères le nouvel enregistrement avec la commande SQL "INSERT INTO"... et la fonction php mysql_query().

    Je t'ai donné la marche à suivre. Tu n'as plus qu'à te documenter sur ces fonctions.

  3. #3
    Débutant
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations forums :
    Inscription : Avril 2003
    Messages : 50
    Points : 60
    Points
    60
    Par défaut
    Salut
    je ne sais si je t'ai bien compris:

    1- Comment recuperer les données venant d'un formulaire
    2- Comment verifier qu'une table existe
    3- Comment inserer dans la table


    Si tels sont tes questions tu as en principe pleins de tutos pour cela mais je vais essyaer de t'aider brievement

    1- a partir de php4 tu feras sur le fichier action.php (<form action="action.php">)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom = $_POST["NOM"]; ou $_GET["NOM"]; // suivant la méthode utilisée
    2- Je n'est jamais eu à tester l'existance d'une table mais si tu as le courage de jeter un coup d'oeil au code de phpmyadmin tu trouveras surement la reponse (comment ils listent les tables et pour la sauvegarde).
    ou rechcherchent sur le net.

    3- Insertion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //tu sais deja le faire je crois
    $sql = "INSERT into joueur(NOM) ($nom)";
    mysql_query($sql);

    j'espère t'avoir compris et aider. tu peux toujours répondre si tel n'est pas le cas on verra.
    Bon courage

    A+
    golchi

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut OK pour tout ca.....
    mais je n'ai pas su etre un bon chef d'orchestre car depsui cet aprés midi, j,e n'arrive pas a faire une chose simple, soit juste ecrire la programme qui va envoyer l'info presente dans le champ dans in INSERT INTO.

    En claire je n'arrive pas a créer les programmes qui joignent tous ces morceaux de code.

    Merci de votre aide


    --------
    Pourquoi doije d'abord envoyer l'info présente dans le champ dans une page cible, pourquoi ne peut on pas envoyer directement en cliquant sur valider, lm'info dans un INSERT INTO? c'est la base de tout mon probleme je crois.

    Merci encore

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Oui mais là, si je peux me permettre, c'est du B A BA... Tu dois relire les tutoriels : cours et tutoriels pour apprendre PHP , par exemple celui la est super : PHP : Le tutoriel pour grands débutants pressés par Sylvie Vauthier

    , écrire des scripts simples... On ne peux pas (ou ne veut pas) te pondre des scripts tout faits que tu ne comprendrais pas.

    Ensuite pose tes questions sur le forum PHP !

  6. #6
    Débutant
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations forums :
    Inscription : Avril 2003
    Messages : 50
    Points : 60
    Points
    60
    Par défaut
    reslt

    est-ce que tu arrives à recupere du formulaire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    print_r($_POST); // pour voir tt le contenu du tableau post
     
    $nom = $_POST["nom"];
    print $nom; // pour voir ce que contient la variable $nom
     
    $sql = "insert into joueur(nom) values ($nom)";
    print $sql; // pour voir aussi son contenu
    est-ce que tu es arrivé à ce niveau ou y a-t-il des msg d'erreurs ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut OU pour faire encore plus simple..............;
    imaginez que l'on vous demande ceci.....

    on a un formulaire qui detient un champ NOM
    une personne le remplie et click sur valider.
    Le nom de cette personne doit apparaittre dans une table afin de pouvoir le rappeler par la suite (ca je sais le faire)

    Tout le probleme est la commenta faire cette manip?

    Merci milles fois

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut Re: OK pour tout ca.....
    Citation Envoyé par kaolivier
    Pourquoi doije d'abord envoyer l'info présente dans le champ dans une page cible, pourquoi ne peut on pas envoyer directement en cliquant sur valider, lm'info dans un INSERT INTO? c'est la base de tout mon probleme je crois.
    C'est à ton script de transformer une donnée brute transmise (ou non...) par l'utilisateur en donnée validée insérable dans une bdd. Sinon, tu ouvres des précipices de sécurité !

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    le tuto parles de recuperer les infos du formualire sur une page Cible, ce n'est pas ca que je veux, je veux qu'elle soit enregistrée immediatement dans la base.


    Merci de votre aide

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    @fofovi72 : n'oublie pas la validation des données.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut Re: OK pour tout ca.....
    Citation Envoyé par vg33
    Citation Envoyé par kaolivier
    Pourquoi doije d'abord envoyer l'info présente dans le champ dans une page cible, pourquoi ne peut on pas envoyer directement en cliquant sur valider, lm'info dans un INSERT INTO? c'est la base de tout mon probleme je crois.
    C'est à ton script de transformer une donnée brute transmise (ou non...) par l'utilisateur en donnée validée insérable dans une bdd. Sinon, tu ouvres des précipices de sécurité !
    Je suis completement paumé............

    Je sais envoyer une info dans le fichier cible (si il le faut)

    Je sais écrire dans une BDD,

    Mais je ne sais pas comment afaire la joinction entre ces deux operations, je suis navrant, aprés 4 heures de tutos.....................

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu ne peux pas d'un clic envoyer une donnée dans la base. C'est rigoureusement impossible, heureusement ! Qu'est-ce que tu ferais sinon si quelqu'un clique 15 fois sur le bouton sans remplir le nom ? Tu insères 15 joueurs sans nom ?
    Tu dois écrire un script qui vérifie la valeur du champ, la valide... (relis mon 1er post). Sois tu fais cela, soit tu n'insèreras jamais une ligne dans une table.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Citation Envoyé par vg33
    Tu ne peux pas d'un clic envoyer une donnée dans la base. C'est rigoureusement impossible, heureusement ! Qu'est-ce que tu ferais sinon si quelqu'un clique 15 fois sur le bouton sans remplir le nom ? Tu insères 15 joueurs sans nom ?
    Tu dois écrire un script qui vérifie la valeur du champ, la valide... (relis mon 1er post). Sois tu fais cela, soit tu n'insèreras jamais une ligne dans une table.
    Donc voici mon code actuel :

    test.php

    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
    <?php 
    $server = "mysql.axs-fr.net"; 
    $user = "******"; 
    $password = "******"; 
    $base = "******"; 
    mysql_connect($server,$user,$password); 
    mysql_select_db($base); 
     
    mysql_query("CREATE TABLE joueurs ( NOM text NOT NULL, POSITION text NOT NULL)") or die (mysql_error()) ; 
    mysql_query("INSERT INTO joueurs1 VALUES ('PAUL', '5')") or die (mysql_error()) ;
    ?> 
     
    <HTM> 
    <body> 
    <form method="post" action="test2.php" style="padding: 0"> 
    <input type="text" name="NOM" size="40" value="<?= $_POST['NOM']; ?>" >
    <input type="submit" name="Envoyer" value=Envoyer style="font-size: 12 pt; font-weight: bold">
    </form>
    </body></htm>
    test2.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php 
    $server = "mysql.axs-fr.net"; 
    $user = "*******"; 
    $password = "*******"; 
    $base = "*******"; 
    mysql_connect($server,$user,$password); 
    mysql_select_db($base); 
    $nom = $_POST["NOM"];
    $sql = "INSERT into joueur(NOM) ($nom)"; 
    mysql_query($sql); 
    ?>

    Merci trés sincérement

  14. #14
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete='INSERT INTO joueurs(NOM) VALUES ("'.$_POST['NOM'].'")';
    $resultat=mysql_query($requete);
    Ceci à faire impérativement après avoir réalisé les points 1 à 4 de ma liste...

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Ca ne revient pas au meme que le programme que j'ai fait au dessus?

    Merci

  16. #16
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Non, car :
    1) Ta table s'appelle "joueurs" et pas "joueur".
    2) Tu dois mettre les valeurs alphanumériques entre quotes dans ta requête SQL => ($nom) te renverra une erreur, pas ("$nom").

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Merci beaucoup ca fonctionne enfin, juste une derniére chose

    Il faut a chaque fois que je supprime la table joueurs1 car il me dit a chaque fois qu'elle existe deja, que dois je faire dans test.php pour qu'il demande si la table existe ou pas ?

    Merci un milliard de fois pour toute votre aide, j'ai les yeux qui n'ont aps quittés le PC depuis 14H25

  18. #18
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu relis tes scripts ?
    1) Ta table s'appelle parfois joueur, parfois joueurs, ou encore joueurs1... Il faudrait choisir !
    2) Pourquoi affecter un value à ton input, et en plus un $_POST alors que tu n'as rien posté ?
    Au passage, tu n'as pas fermé les quotes de ce value.

    Conclusion : j'ai la nette impression que tu ne comprends pas ce que tu codes. Je réitère mon conseil : rédige de petits scripts qui fonctionnent, et ensuite code des scripts plus complexes. Tu dois aussi mieux connaître le xhtml.

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Excusez moi j'ai posté un peu vite, c'est la fatigue, en fait j'ai re-édité mon dernier message.

    test.php

    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
    <?php 
    $server = "mysql.axs-fr.net"; 
    $user = "*******"; 
    $password = "*******"; 
    $base = "*******"; 
    mysql_connect($server,$user,$password); 
    mysql_select_db($base); 
     
    mysql_query("CREATE TABLE joueurs1 ( NOM text NOT NULL, POSITION text NOT NULL)") or die (mysql_error()) ; 
    mysql_query("INSERT INTO joueurs1 VALUES ('PAUL', '5')") or die (mysql_error()) ;
    ?> 
     
    <HTM> 
    <body> 
    <form method="post" action="test2.php" style="padding: 0"> 
    <input type="text" name="NOM" size="40" value="<?= $_POST['NOM']; ?>" style="color: #800080; font-weight: bold">
    <input type="submit" name="Envoyer" value=Envoyer style="font-size: 12 pt; font-weight: bold">
    </form>
    </body></htm>


    test2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
    $server = "mysql.axs-fr.net"; 
    $user = "*******"; 
    $password = "*******"; 
    $base = "*******"; 
    mysql_connect($server,$user,$password); 
    mysql_select_db($base); 
     
    $requete='INSERT INTO joueurs1(NOM) VALUES ("'.$_POST['NOM'].'")'; 
    $resultat=mysql_query($requete); 
     
    ?>
    J'ai juste un petit souci c'est que je dois a chaque fois supprimer la table que j'ai créer, que dois je rjouter pour lui demander de la créer qui si elle n'existe pas?

    Mille millairds de merci, je vou sassure que je m'efforce de comprendre ce que j'ecris mais j'ai les yeux ui n'ont pas quitté l'ecran depuis 14H30 et je n'ai pas encore mangé depuis. Désolés de vous decevoir a ce point.

  20. #20
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par kaolivier
    Il faut a chaque fois que je supprime la table joueurs1 car il me dit a chaque fois qu'elle existe deja, que dois je faire dans test.php pour qu'il demande si la table existe ou pas ?
    Je te l'ai déjà dit dans mon 1er post : mysql_list_tables().

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/12/2013, 14h29
  2. Champ présent dans une table Firebird mais pas dans TIBDataSet
    Par Mirmillon dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/12/2007, 00h41
  3. [MySQL] test si une valeur est déjà présente dans la table ou non
    Par yohan0262 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/06/2007, 13h42
  4. [Access] Nom d'une table avec un espace dans SQL
    Par Corsaire dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/04/2006, 15h50
  5. cellule d'une table visible avec focus dans div scrollable
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2005, 10h57

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