Enregistrer des données dans une table

myriam -  
Ohm-WorK Messages postés 1468 Statut Contributeur -
Bonjour , j'ai crée un formulaire html ( form action...) à partir duquel je rentre des données . J'aimerais enregistrer ces données dans une base de données mysql et ma question est la suivante : pour foutre ces données dans la base de données , je dois lire les données dans la base ou les écrire dans la base ? Je crois pas que je dois les lire dans la base vu qu'elles n'y sont pas encore , je dois les écrire dans la base c'est çà ? Donc est possible d'écrire des données dans la base à partir du formulaire ?

Je souhaite une réponse littérale svp , surtout pas de code , merci .
A voir également:

12 réponses

Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
Salut

Oui, il faut que tu écrive tes données dans la base. Pour ce faire, tu peux utiliser le PHP pour récupérer les valeurs de ton formulaire, et ensuite tu écrit tes valeurs dans la base de données :)

A++

PS : j'ai eu du mal, mais j'ai résisté à l'envie de mettre du code en exemple lol
0
myriam
 
alors ok donc dans mon formulaire j'ai 2 champ à remplir , pseudo et message , et voici le code php que je propose pour écrire dans la base de données les données que j'entrerai dans mon formulaire :

mysql_connect("localhost", "root", "");
mysql_select_db("test");
INSERT INTO chat(ID, pseudo, message)
VALUES('',$_POST['pseudo'],$_POST['message'])

PS : voici le code du formulaire si çà peut aider :

<form action="chat.php" method="post">
<p> Pseudo : <input type="text" name="pseudo"> </p>
<p> Message : <input type="text" name="message"> </p>
<input type="submit" value="send">
</form>

ma question est : ici est ce que dans VALUES quand je mets $_POST...çà me mettra ce que contient le formulaire dans la table ?
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
2 problèmes

Un accès root sans mot de passe sur la base... mais bon si c'est pour les test, rien de méchant

par contre, les $_POST je les mettrai d'abord dans une variable, pour éviter les problèmes avec les ' :)

sinon, c'est bon :)
0
myriam
 
pardon , je corrige mon code :

mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("INSERT INTO chat VALUES('',$_POST['pseudo'],$_POST['message'])");

c'est pas mieux ainsi ? :)

le code entier c'est ça :

<form action="chat.php" method="post">
<p> Pseudo : <input type="text" name="pseudo"> </p>
<p> Message : <input type="text" name="message"> </p>
<input type="submit" value="send">
</form>

<?php

$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));

if(isset($_POST['pseudo']) && isset($_POST['message']))
{
if($_POST['pseudo'] != NULL $$ $_POST['message'] != NULL)
{
mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("INSERT INTO chat VALUES('',$_POST['pseudo'],$_POST['message'])");

çà écrit bien les données du formulaire dans la table ?
0

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

Posez votre question
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
Oui. Pour en etre sur tu peux faire :
if (mysql_query("INSERT INTO chat VALUES('',$_POST['pseudo'],$_POST['message'])"))
echo "données enregistrées"
else
echo "erreur".mysql_error();

:)
0
myriam
 
ok , et maintenant je veux afficher les 10 1eres entrées de ma table et voici le code que je propose :

<?php

$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));

if(isset($_POST['pseudo']) && isset($_POST['message']))
{
if($_POST['pseudo'] != NULL $$ $_POST['message'] != NULL)
{
mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("INSERT INTO chat VALUES('',$_POST['pseudo'],$_POST['message'])");
mysql_close();
}
}

$reponse = mysql_query("SELECT * FROM chat LIMIT 0, 9");

while($donnees = mysql_fetch_array($reponse))
{
echo $donnees;
}


mais j'ai une erreur sur cette ligne quand je veux lire la page : if($_POST['pseudo'] != NULL $$ $_POST['message'] != NULL)
0
myriam
 
j'ai réussi à corriger cette erreur mais j'en ai une autre plus complexe à cette ligne :

mysql_query("INSERT INTO chat VALUES(' ',$_POST['pseudo'],$_POST['message'])");

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'

concrètement çà veut dire quoi?
0
myriam
 
quelqu'un peut me dire où est le problème dans cette ligne svp ?
0
myriam
 
personne n'a une idée ?
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
Salut

Essaye d'enregistrer tes $_POST dans des variables avant
$pseudo = $_POST['pseudo'];
...

Ca évite d'avoir trop de ' dans la requète :)

A++
0
myriam
 
alors voici le code complet html et php pour réaliser un mini chat qui à partir d'un formulaire nous envoit les 10 1eres messages ( avec pseudos ) :

<form action="chat.php" method="post">
<p> Pseudo : <input type="text" name="pseudo"> </p>
<p> Message : <input type="text" name="message"> </p>
<input type="submit" value="send">
</form>

<?php

$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));

if(isset($_POST['pseudo']) && isset($_POST['message']))
{
if($_POST['pseudo'] != NULL && $_POST['message'] != NULL)
{
mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("INSERT INTO chat VALUES('',$pseudo,$message)");
mysql_close();
}
}

$reponse = mysql_query("SELECT * FROM chat LIMIT 0, 9");

while($donnees = mysql_fetch_array($reponse))
{
echo $donnees;
}

?>

et quand j'essaye de lire la page j'ai bien le formulaire mais aussi des messages d'erreurs qui sont pas trop normaux je trouve :

Notice: Undefined index: pseudo on line 17

Warning: mysql_real_escape_string(): Acc�s refus� pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) on line 17

Warning: mysql_real_escape_string(): A link to the server could not be established

Notice: Undefined index: message on line 18

Warning: mysql_real_escape_string(): Acc�s refus� pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) on line 18

Warning: mysql_real_escape_string(): A link to the server could not be established

Warning: mysql_query(): Acc�s refus� pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) line 31

Warning: mysql_query(): A link to the server could not be established on line 31

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource on line 33

t'es bien d'accord que j'entre les données dans la base et que ensuite je les lis correctement en les affichant ?
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
Bonjour :)

Plusieurs choses :

<?php

$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));

Il faut que tu utilise
$pseudo = addslashes($_POST['pseudo']); // Ca te permet d'ajouter les \ devant les caractères spéciaux.
donc meme chose pour message.

Warning: mysql_query(): Acc�s refus� pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) line 31

Ta connexion au serveur mysql ne fonctionne pas...

A+
0