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 :

Php, je ne comprends pas comment faire pour introduire des données dans une table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut Php, je ne comprends pas comment faire pour introduire des données dans une table
    Bonjour à tous,

    je sollicite votre avis et peut etre pourriez vous m'aider à comprendre.

    J'ai créé sur un serveur une base de données. Celle -ci s'appelle coupechampion. Sur celle-ci se trouve une table avec 4 champs: joueur1, joueur2, joueur3 et joueur4.

    Ensuite, en suivant les introductions, pas trop clair, j'ai créé ce fichier:

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title></title>
    </head>
    <body><?php
     
    $mysql_connect = mysql_connect("localhost","moi","mouton"); // A renseigner - Sa permet de se connecter au serveur MySQL
    mysql_select_db('coupechampion',$mysql_connect); // A renseigner - Nom de la base de données
     
    mysql_query("INSERT INTO table (champ1,champ2,champ3,champ4,champ5) VALUES ('enregistrement du champ 1', 'enregistrement du champ 2', 'enregistrement du champ 3', 'enregistrement du champ 4', 'enregistrement du champ 5')"); // Vous pouvez utiliser des variables si nécessaire : $variable
     
    ?><input type"text" name"joueur1"> joueur 1
    <br>
    </body>
    </html>
    Etant donné que c'est une base de donnée test et que rien n'y est d'autre il y a donc mon utilisateur et mot de passe.

    Voilà ou j'en suis.

    Maintenant, plusieurs petites questions.

    Premièrement, on va commencer par cela: comment faire pour que je puisse introduire des données dans cette table.

    Parce que j'ai bien compris que je devais utiliser <input name"joueur1" type"texte". Mais je ne sais pas comment créer la balise form...

    Je sais pas si vous me comprennez mais je l'espère et j'espère que quelqu'un entendra ma demande.

    A bientot et merci à tout ceux qui vont me lire.

    Michael

  2. #2
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut Bon je viens de chercher un peu, reste une étape je pense
    Bon je viens de chercher et j'ai trouvé ceci...
    Une page formulaire pour introduire les champs:

    Code html : 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
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <meta content="text/html; charset=ISO-8859-1"
     http-equiv="content-type">
      <title></title>
    </head>
    <body>
    <br><form method="post" action="envoi.php">
    <input type="text" name="joueur1" value="joueur1" maxlength="20" size="25"><br><br>
    <input type="text" name="joueur2" maxlength="30" value="joueur2" size="30"><br><br>
    <input type="text" name="joueur3" maxlength="10" value="joueur3" size="13"><br><br>
    <input type="text" name="joueur3" maxlength="20" value="joueur3" size="30"><br><br> 
    <center><input type="submit" name="envoi" value="envoi!"></center>
    </form> 
     
     
     
    </body>
    </html>

    donc ca c'est ok j'avais pigé.. mdr

    Ensuite, les données sont envoyées ici:

    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
     
     
    <?php
    // récupération des données du formulaires
    $joueur1 = $_POST['joueur1'];
    $joueur2 = $_POST['joueur2'];
    $joueur3 = $_POST['joueur3'];
    $joueur4 = $_POST['joueur4'];
     
    // connexion à votre base de donnée
    $mysql_connect = mysql_connect("localhost","moi","mouton"); // A renseigner - Sa permet de se connecter au serveur MySQL
    mysql_select_db('coupechampion',$mysql_connect); // A renseigner - Nom de la  base de données
     
     
     
    // on créer la requête SQL, pour ensuite l'envoyer
    $requete = "insert into round1 values('','$joueur1','$joueur2','$joueur3','$joueur4')";
    mysql_query($requete);
     
    echo "Vos données ont été envoyées !"; 
     
    // fermeture de la connexion vers Mysql
    mysql_close(); ?>
    Et c'est la que ca coince. La page qui arrive est simplement l'affichage du code...
    Merci de votre lecture.

    Michael

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Par défaut En attendeur le réveil des autres:
    Bonjour,
    Le tout tient dans le transfert des données. la var requête est un simple texte, dans lequel il faut introduire les variables $joueur. Fais un test et un simple
    echo $requete;
    exit;
    et tu verra si la var contient les valeurs voulues.
    L'erreur vient dans le choix des ' et " !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete = "insert into round1 values
    VALUES (NULL, '". $joueur1."', '".$joueur2."', '".$joueur3."', '".$joueur4."' )";
    et le tour est joué.

    Cordialement,
    Rodolphe

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut re
    Merci pour votre aide...

    Mais en fait je mettais pas rendu compte que j'avais pas activer easyphp d'ou l'apparition du code pur et simple.

    Mais en le mettant sur un serveur, j'obtient 4 codes erreurs....
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Warning:  mysql_connect(): Access denied for user 'moi'@'localhost' (using password: YES) in /home/ligue/domains/ligue.ns5-wistee.fr/public_html/sites/envoi.php on line 10
    
    Warning:  mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/ligue/domains/ligue.ns5-wistee.fr/public_html/sites/envoi.php on line 11
    
    Warning:  mysql_query(): Access denied for user 'apache'@'localhost' (using password: NO) in /home/ligue/domains/ligue.ns5-wistee.fr/public_html/sites/envoi.php on line 17
    
    Warning:  mysql_query(): A link to the server could not be established in /home/ligue/domains/ligue.ns5-wistee.fr/public_html/sites/envoi.php on line 17
    insert into round1 values('','','','','')
    Je mets l'adresse du lien et du renvoie pour y voir les erreurs, si vous pouviez continuer à me guider. En fait, une fois le test compris, le reste va aller. Mais bon faut comprendre d'où ca vient.
    http://ns5.wistee.fr/~ligue/sites/envoi.php

    Merci pour votre aide.
    Michael

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 644
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 644
    Par défaut
    le message d'erreur que tu as signifie que l'accès n'est pas autorisé pour le nom d'utilisateur "moi"
    puisque tu utilise EasyPHP je te conseille de mettre l'utlisateur "root" et un mot de passe vide pour commencer

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Par défaut
    Bonjour,

    Je pense que les messages sont clairs, tu a un problème d'authentification pour la connexion au serveur MySQL. Verifie tes paramètres sachant qu'il faut faire attention à la casse pour le username et password.

    Un petit conseil également, avant de commencer à faire du PHP, je t'encourage vivement à maitriser un peu le language HTML ! apprends les chose dans l'ordre, tu t'en sortiras beaucoup mieux

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Par défaut rien a transmettre
    Regarde ton message 4:

    Tes valeurs à transmettre ne sont pas incluses dans la query, donc rien à insérer! Regarde mon message précédent. Mais il faut déjà commencer à te connecter correctement à ta base!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Warning:  mysql_query(): A link to the server could not be established in /home/ligue/domains/ligue.ns5-wistee.fr/public_html/sites/envoi.php on line 17
    insert into round1 values('','','','','')
    Pour te connecter, essaye ceci, c'est compliqué mais facile si tu sais comment remplir ces trois variables, la première étant bonne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $DbHost     = "localhost"; // Ceci est bon
    $DbDatabase = "moi_specialiste"; // la base de données nom de compte,nom base
    $DbUser     = "moi_utilisateurdb"; //  nom de compte nom utilisateur de la base
    $DbPassword = "f54djkshdf86r"; // Mot de passe base de donnees, pas du compte
     
    if(!mysql_connect($DbHost,$DbUser,$DbPassword)) {
    	$NOTCONNECTED = TRUE;
    }
    if(!mysql_select_db($DbDatabase)) {
    	$NOTCONNECTED = TRUE;
    }
    Enfin, te voilà occupé jusqu'à le fin de la journée,
    Rodolphe

  8. #8
    Membre éclairé Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Par défaut
    script qui marche avec une base nommée "test_requette", une table nommée "mois" contenant 2 champs "id", INT incrémental et "nom", TEXT :

    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
    <html>
    <body>
    <table border="1">
    <?
     
    $login_sql          = "root";               // LOGIN MYSQL
    $password_sql       = "";                   // PASSWORD MYSQL
    $host_sql           = "localhost";          // ADRESSE DU SERVEUR MYSQL
    $base_sql           = "test_requette";              // BASE DE DONNEES
     
    mysql_connect("$host_sql", "$login_sql", "$password_sql");
    mysql_select_db("$base_sql");
     
     
    $requette="SELECT id,nom FROM mois";
    $valeur = mysql_query("$requette");
     
     while($row = @mysql_fetch_array($valeur)){
    $nom = $row[1];
    $id = $row[0];
     
    echo "<tr><td>$id</td><td> $nom</td></tr>";
    }
     
    mysql_close();
     
    ?>
    </select>
    </body>
    </html>
    pour tester ta connexion tu peux aussi faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?
     
    $login_sql          = "root";               // LOGIN MYSQL
    $password_sql       = "";                   // PASSWORD MYSQL
    $host_sql           = "localhost";          // ADRESSE DU SERVEUR MYSQL
     
    if(!@mysql_connect("$host_sql", "$login_sql", "$password_sql")){
         print("<div align='center'><input type='text' style='background-color:#FF0000;border:0;text-align:center;font-weight:bold;' value='Non connecté à la base de donnée' id='offline' size='40'></div><br/>");     
     } else{
         print("<div align='center'><input type='text' style='background-color:#00FF00;border:0;text-align:center;font-weight:bold;' value='Connecté à la base de donnée' id='online' size='40'></div><br/>");
     }
     
    ?>

  9. #9
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut Re
    Merci pour vos messages.

    Bien pour le html, ca va je pense maitriser.

    Bon j'ai bien tout modifier et il me marque:

    dans echo $requete: les pseudos des joueurs.

    Ensuite il marque: vos données ont été envoyées.

    Mais quand je vais sur mon serveur php, y a rien du tout d'ajouter... JE suis désolé je sais que c'est sans nul doute idiot pour vous maisbon pas pour moi

  10. #10
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Salut,

    Pour pouvoir ajouter des données dans ta base il faut que tu envoie la bonne requête. Par exemple, celle-ci ajoutera les donné bob dans le champs prenom, et morane dans le champs nom, de la table ma_table:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO ma_table ('nom', 'prenom') VALUES ('morane', 'bob')";
    Il te suffit ensuit de faire un mysql_querry, comme tu le fait pour ton select, et le tour est joué.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Par défaut Trop rapide
    Les réponses et idées qu'on te donne sont certainement trop rapprochées pour que tu puisse les mettre en oeuvre!
    Si ton echo $request reste vide, tu a mal écrit en php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete = "insert into round1 values
    VALUES (NULL, '". $joueur1."', '".$joueur2."', '".$joueur3."', '".$joueur4."' )";
    et puis une autre chose: Si tu as copié tes input de ta page et ne les as pas modifié, celà ne fonctionnera pas car tu a deux fois le même nom joueur3 ...

    A+
    Rodolphe

  12. #12
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut bin bin
    Merci pour toutes ses réponses mais ca bloque toujours quelque part. rien n'arrive sur la table. Je dois pas tout comprendre lol...

    Alors, pour le fichier html c'est ok.
    Pour le php si je fais un écho de $requete il me donne ceci:
    INSERT INTO Round1 (Joueur1, Joueur2, Joueur3, Joueur4) VALUES(NOW(),'soit','pourtqoi', 'ezoiuptro', 'opiteuoa')Vos données ont été envoyées !
    cela prouve que les noms des joueurs passent bien du html au php.

    Mais il me note vos données sont bien envoyées mais il n'y a rien sur phpadmin... bon bin... à vos méninges


    dernier code Php en fonction de ce que vous m'avez dit:

    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
    <?php
    // récupération des données du formulaires
    $joueur1 = $_POST['joueur1'];
    $joueur2 = $_POST['joueur2'];
    $joueur3 = $_POST['joueur3'];
    $joueur4 = $_POST['joueur4'];
     
    // connexion à votre base de donnée
    $mysql_connect = mysql_connect("localhost","ligue_champion","mouton"); // A renseigner - Sa permet de se connecter au serveur MySQL
    mysql_select_db('http://ns5.wistee.fr/phpMyAdmin/ligue_coupechampion',$mysql_connect); // A renseigner - Nom de la  base de données
     
     
     
    // on créer la requête SQL, pour ensuite l'envoyer
     
    $requete = "INSERT INTO Round1 (Joueur1, Joueur2, Joueur3, Joueur4) VALUES(NOW(),'$Joueur1','$Joueur2', '$Joueur3', '$Joueur4')";
     mysql_query($requete);
     
    echo $requete;
     
    echo "Vos données ont été envoyées !"; 
     
    // fermeture de la connexion vers Mysql
    mysql_close(); ?>

  13. #13
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Salut,

    remplace donc ton mysql_querry($requete) par ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query($requete) or die('Erreur SQL !<br />'.$requete.'<br />'.mysql_error());
    et dit nous si tu as une erreur.

  14. #14
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut merci
    Bin oui voilà ce qu'il met comme erreur:
    Erreur SQL !
    INSERT INTO Round1 (Joueur1, Joueur2, Joueur3, Joueur4) VALUES(NOW(),'joueur1','joueur2', 'joueur3', 'joueur4')
    No database selected

  15. #15
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Bon, je l'avais même pas vu, mais ton problème ce situe ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_select_db('http://ns5.wistee.fr/phpMyAdmin/ligue_coupechampion',$mysql_connect); // A renseigner - Nom de la  base de donnée
    Remplace le par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_select_db('ligue_coupechampion',$mysql_connect); // A renseigner - Nom de la  base de donnée
    Il faut mettre ici que le nom de ta base de donnée, pas le chemin d'accès !

  16. #16
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut la suite
    C'est fait mais il me met ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur SQL !
    INSERT INTO Round1 (Joueur1, Joueur2, Joueur3, Joueur4) VALUES(NOW(),'joueur1','joueur2', 'joueur3', 'joueur4')
    Column count doesn't match value count at row 1
    Merci en tout cas
    Michael

  17. #17
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    C'est encore normal, tu insert 5 données en précisant seulement 4 champs, que vient faire le NOW(), il correspond à quoi, un id ?

  18. #18
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut
    bin oui il y a une id...

    attend je vais faire simple lol j'espère...



    voilà ma table... j'ai mis une id parce qu'il me disait qu'il fallait une clé primaire. mais bon si ca sert pas je l'efface.

  19. #19
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Bon alors dans php my admin, tu modifie ton champs id et tu met dans extre la valeur 'auto_increment'.

    Puis tu modifie ta requête comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "INSERT INTO Round1 (ID, Joueur1, Joueur2, Joueur3, Joueur4) VALUES('','$Joueur1','$Joueur2', '$Joueur3', '$Joueur4')";
    Sa devrait marcher

  20. #20
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut MERCI merci
    Merci beaucoup ca fonctionne comme je voulais vous etes vraiment sympa sur ce forum et je vous remercie encore....

    Si jamais maintenant je vais lire le tuto sur comment utiliser mes données dans une htlm et si j'ai des problèmes je reviens

    En tout cas merci beaucoup

    Michael

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

Discussions similaires

  1. [AC-2010] Erreur pour supprimer des données dans une table liée
    Par marieo dans le forum Access
    Réponses: 2
    Dernier message: 19/03/2016, 10h00
  2. Réponses: 3
    Dernier message: 28/03/2015, 09h15
  3. [2008] Tableau pour croiser des données dans une table
    Par Baquardie dans le forum Développement
    Réponses: 2
    Dernier message: 27/01/2015, 15h07
  4. Réponses: 10
    Dernier message: 14/02/2007, 17h03
  5. [VB6]Comment faire pour récuperer des donnée sur un mp3 ou wav ?
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/06/2006, 16h08

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