Enregistrer des données dans une table
myriam
-
Ohm-WorK Messages postés 1468 Statut Contributeur -
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 .
Je souhaite une réponse littérale svp , surtout pas de code , merci .
A voir également:
- Enregistrer des données dans une table
- Fuite données maif - Guide
- Table des matières word - Guide
- Audacity enregistrer son pc - Guide
- Table ascii - Guide
- Comment enregistrer une conversation - Guide
12 réponses
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
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
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 ?
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 ?
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 :)
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 :)
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 ?
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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();
:)
if (mysql_query("INSERT INTO chat VALUES('',$_POST['pseudo'],$_POST['message'])"))
echo "données enregistrées"
else
echo "erreur".mysql_error();
:)
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)
<?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)
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?
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?
Salut
Essaye d'enregistrer tes $_POST dans des variables avant
$pseudo = $_POST['pseudo'];
...
Ca évite d'avoir trop de ' dans la requète :)
A++
Essaye d'enregistrer tes $_POST dans des variables avant
$pseudo = $_POST['pseudo'];
...
Ca évite d'avoir trop de ' dans la requète :)
A++
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 ?
<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 ?
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+
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+