[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 .
A voir également:

8 réponses

akyrion3000 Messages postés 552 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
bezourox Messages postés 730 Date d'inscription   Statut Membre Dernière intervention   143
 
oki doki chef je regarde tout ca :)
0
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
akyrion3000 Messages postés 552 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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
akyrion3000 Messages postés 552 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
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
akyrion3000 Messages postés 552 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
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
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