[php+mysql]ecrire dans la base

Résolu
bezourox Messages postés 730 Date d'inscription   Statut Membre Dernière intervention   -  
 Raphael -
bonjour a tous .
voila j'ai recupéré d'un formulaire des infos .
je veux maintenant aller les ecrire dans une base de données mais ca ne marche pas ...
j'ai bien créé un base qui s'appelle qcm et qui contient une table t_gestion_des_donnees .
cette table t_gestion_des données contient les 9 champs a remplir (nom, prenom, date, etc...)
voyez vous un soucis majeur dans mon code ?

/* Constantes de connection
********************************************************************/
define("HOST", "localhost");
define("username", "root");
define("PASSWORD", "cavousregardepas");
define("DATABASE", "qcm.t_gestion_des_donnees");

/* Connection à la base
********************************************************************/
$serveur = mysql_connect (HOST, username, PASSWORD);

/* Sélection de la base
********************************************************************/
mysql_select_db (DATABASE);
if (!$serveur)
{
die('Non connecté : ' . mysql_error());
}
else
{
echo "Enregistrement de votre score dans la base de données...<br />";

$query = "INSERT INTO 't_gestion_des_donnees' VALUES ('','.$nom.','.$prenom.','$date')";
$req = mysql_query($query);
echo "Nom enregistré correctement<br />";
}

a noter : avant le .$nom. dans la requette, il y a 2quotes avec rien entre car il s'agit d'une auto incrementation du champs 'id' donc pas a le remplir .

Voila je suis a l'ecoute de toute suggestion, puisque je debute en bdd .
Configuration: Windows XP
Firefox 2.0.0.3

8 réponses

  1. akyrion3000 Messages postés 685 Date d'inscription   Statut Membre Dernière intervention   166
     
    Salut,

    qcm.t_gestion_des_donnees


    Le nom de la base uniquement est suffisant. Ce n'est pas forcément la raison de l'erreur mais ça allegera le code.

    Pourquoi les . '.$nom.' ?

    J'utilise ça comme cela :
    //requete table HappyHour
    $addhappyhour = "INSERT INTO happyhour VALUE('','$id_etablissement','$heure_debut','$heure_fin')";
    //execution de la requete
    mysql_query($addhappyhour) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    //fermeture de la base
    mysql_close(); 
    //message de succès
    echo '<center>Vos infos ont été enregistrées.</center>';


    Autre info, sur ta page de validation ajoute un :
    Echo $query;

    Pour voir ta requete puis test la sur PHPMyAdmin par exemple.
    3
  2. bezourox Messages postés 730 Date d'inscription   Statut Membre Dernière intervention   143
     
    oki doki chef je regarde tout ca :)
    0
  3. bezourox Messages postés 730 Date d'inscription   Statut Membre Dernière intervention   143
     
    bon la modif est apportée pour le qcm.t_gestion_des_donnees .
    pour les .$variable. c'est modifié aussi .

    mais ca ne marche toujours pas .

    if (!$serveur)
    {
    die('Non connecté : ' . mysql_error());
    }
    else
    {
    echo "Enregistrement de votre score dans la base de données...<br />";

    $query = "INSERT INTO 't_gestion_des_donnees' VALUES ('','$nom','$prenom','$date')";
    $req = mysql_query($query);
    echo "$query";
    mysql_close();
    echo "Nom enregistré correctement<br />";
    }


    résultat :

    Enregistrement de votre score dans la base de données...
    INSERT INTO 't_gestion_des_donnees' VALUES ('','priou','guillaume','30/05/2007')Nom enregistré correctement


    La requette s'affiche bien tout est niquel .
    Dans la page mysql ou je vois ma table avec sa liste de champs, impossible de cliquer sur "afficher" car il est grisé .
    j'en déduit que rien ne s'est encore ecrit ...
    0
  4. akyrion3000 Messages postés 685 Date d'inscription   Statut Membre Dernière intervention   166
     
    Et si sur "la page mysql" tu clic sur SQL puis tu entres :

    INSERT INTO 't_gestion_des_donnees' VALUES ('','priou','guillaume','30/05/2007')

    Résultat ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. bezourox Messages postés 730 Date d'inscription   Statut Membre Dernière intervention   143
     
    oups .
    effectivement message de merde :

    MySQL a répondu:Documentation
    #1064 - Erreur de syntaxe pr�s de ''t_gestion_des_donnees' VALUES ('','$nom','$prenom','$date')' � la ligne 1
    0
  7. akyrion3000 Messages postés 685 Date d'inscription   Statut Membre Dernière intervention   166
     
    Il faut executer le INSERT INTO avec INSERT INTO 't_gestion_des_donnees' VALUES ('','priou','guillaume','30/05/2007')

    pas avec $xxx

    Sinon le format est faux
    0
  8. bezourox Messages postés 730 Date d'inscription   Statut Membre Dernière intervention   143
     
    mouais c'est bon la ca marche mais je capte pas trop pourquoi :

    $query = "INSERT INTO `t_gestion_des_donnees` VALUES ('','".$nom."','".$prenom."','".$date."','".$reponse_juste."','".$reponse_fausse."','".$ne_sais_pas."','".$num_reponses_justes."','".$num_reponses_fausses."','".$num_je_ne_sais_pas."')";

    Voila cette requete il en veut bien , celle d'avant non , mais pourquoi ... mystere .

    Enfin qu'importe le probleme est resolu .
    Je te remercie pour t'etre penché sur mon probleme et te souhaite bonne fin de journée :)
    0
  9. akyrion3000 Messages postés 685 Date d'inscription   Statut Membre Dernière intervention   166
     
    ahhh je savais pas que ta table était écourtée,

    En fait pour injecter seulement 3 champs, il faut spécifier les champs exemple :

    Table nom - prenom - sexe - age

    INSERT INTO table_age (nom, prenom, age) values (Nfamille, Prenom, 4)
    0
    1. glm
       
      bonjour,aider moi svp, je n'arrive pas à écrire dans ma base, je recueille les données d'un formulaire que je voudrais enregistrer dans ma base de donnée mais le problème c'est qu'il m'affiche cette erreur:
      Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\pseudotrac\insert.php on line 10
      à la validation du formulaire (clik sur ok) la page php qui contient le code suivant est appelée:

      <?php session_start();
      function envoyer()
      { $text=$_POST['comms1'];
      $jour=$_POST['jour'];

      $sql = "INSERT INTO `bug` VALUES ('', '$text', '$jour')"; // requète sql à exécuter



      $result = mysql_query($sql); //envoyer la requête au serveur et écrire dans la base
      if( !$result ) // si échec, arrêter le script
      die( "Impossible d'exécuter la requête : il ya surement un problème " . mysql_error() );

      else echo "votre message a bien été envoyé nous vous recontacterons dans les plus bref delais";
      echo " bonjour";
      }
      ?>
      <!--
      To change this template, choose Tools | Templates
      and open the template in the editor.
      -->
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head><LINK rel="stylesheet" type="text/css" href="appliattribut.css">
      <script language="Javascript" src="jquery-nightly.js" type="text/javascript"></script><!--inclue la librairie jqeury-->
      <script language="Javascript" src="applilien.js" type="text/javascript"></script><!--inclu le code source javascript-->
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>pseudotractest</title>
      </head>
      <body>
      <br/>
      <?php
      envoyer(); // appel de la fontion
      ?>
      </body>
      </html>

      nb: avant cela je me suis déjà connecté au serveur puis à la base (mysql_connect et mysql_select_db) et ça marche. je ne comprend vraiment pas l'erreur et puis en passant faudrait-il que je change le mot de passe pour accéder au serveur ou pas? et si oui comment le faire? j'utilise xampp apache et mysql, phpmyadmin....
      merci de bien vouloir me répondre, ça fait deux jours que je galère et que je n'arrive pas à aboutir!
      0
    2. Raphael
       
      C'est très simple, il vous suffit de faire un emulateur d'apache en bash, et ensuite de compiler le plugin suivant : dynmap avec celui là : sourcemod, et votre problème seras réglé !

      Bien à vous,
      Raphaël Pey
      Dévelloppeur chez Mojang.
      0