Textarea dans bdd
Autumn`Tears Messages postés 1247 Statut Membre -
Je suis débutant et j'ai un petit problème , je n'arrive pas à enregistré le contenu d'une textarea dans ma bdd...
j'ai crée une base de donnée appelé "uscs"
Dedans j'ai une table "classementa" avec deux champs : - id (INT, AI )
- classementseniorsa ( TEXT )
J'aimerais pouvoir enregistré le contenu de la textarea situé de adminclassements.php dans classements.php
Voici mes 2 pages
adminclassements.php :
------------------------------------------------------------------------------------------------------
<form method="post" action="classements.php">
<p> Classement des Seniors A </p>
<p> <textarea name="classementa" id="classementa" rows="20" cols="80"></textarea> <br />
<input type="submit" value="Valider" />
</p>
</form>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("uscs");
if (isset($_POST['classementa']))
{
$classementa = ($_POST['classementa']);
$classementa = nl2br($classementa);
mysql_query("INSERT INTO classementa VALUES('', '" . $classementa . "')");
}
mysql_close();
?>
-------------------------------------------------------------------------------------------------------
classements.php
----------------------------------------------------------------------------------------------
<p> Classement seniors A
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("uscs");
$reponse = mysql_query("SELECT * FROM classementa ORDER BY ID DESC LIMIT 0,1");
mysql_close();
while($donnees = mysql_fetch_array($reponse))
{
?>
<?php echo $donnees['classementa']; ?>
<?php
}
?>
</p>
-----------------------------------------------------------------------------------------------------
Pour l'heure je ne constate aucun enregistrement dans ma BDD...
Merci d'avance pour votre aide
Alex.
Configuration: Windows Vista Internet Explorer 7.0
32 réponses
- 1
- 2
Des débutants tentent d’enregistrer le contenu d’une textarea dans une base MySQL via PHP, en passant par des pages adminclassements.php et classement.php, mais aucun enregistrement n’apparaît en base. Les échanges mettent en évidence des erreurs comme des parse errors, des notices et des incohérences entre les noms de colonnes ('classementa' vs 'classementseniorsa') et les requêtes INSERT/SELECT. Plusieurs conseils promeuvent d’aligner les noms de colonne et les champs dans les requêtes, de fermer correctement les balises PHP, et éventuellement de reconstruire la table avec une clé auto-incrément. Cette approche évite les erreurs de nommage et facilite les requêtes SELECT pour afficher le dernier enregistrement inséré.
-
Essaie de mettre des or die(mysql_error()); pour voir si il y a des erreurs dans tes requêtes ou autre
-
Effectivement, excuse-moi !
adminclassements.php :
Modifie simplement cette ligne comme ceci :
mysql_query("INSERT INTO classementa VALUES('', '" . $classementa . "')") or die("Erreur ".mysql_error());
Autre question : Tu te sers de quoi comme serveur Apache / mysql ? -
Mais ta requête m'étonne un peu en fait, tu peux me donner la structure de la table stp ^
-
pas de souci :
une base de donnée appelée "uscs"
une table appelée "classementa"
deux champs : - ip ( INT ; AI )
- classementseniorsa ( TEXT )
Jspr que cela te suffit....
Alex -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ok, essaie de refaire ta requête comme suit : mysql_query("INSERT INTO classementa VALUES('" . $classementa . "')");
-
Sinon, essaie de recréer ta table comme ça :
CREATE TABLE classementa(
Ip INT(5) UNSIGNED NULL DEFAULT NULL AUTO_INCREMENT primary key,
classementseniorsa (TEXT)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; -
je peux pas la créer comme sa j'ai un message d'erreur...
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(TEXT) )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1' at line 3 -
Ha oui, désolé, enlève les parenthèses autour de TEXT
-
Quelque chose m'échappe, cela fonctionne chez moi :s
-
-
j'ai désormais ceci sur ma page classements.php :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\site\classements.php on line 46
et tjrs rien d'enregistré dans la table... -
Ha, en fait ça doit venir du Script. Tu devrais faire une seconde page comportant la récupération de tes données et si tu veux faire réapparaître cette même page, tu fais un include('classements.html');
(et non plus .php comme il n'y a plus de code PHP dans cette page). -
-
Dans ta page adminclassements.php :
Change <form method="post" action="classements.php"> par <form method="post" action="adminclassements.php">
-
je ne suis plus dirigé vers ma page classements.php il ne se passe rien j entre qqch dans ma textarea j appuie sur valider et le texte disaparait , tjrs rien dans la table et le meme message d'erreur dans classements.php
-
Sinon, fais comme je t'ai dit, avec deux fichiers.
-
j 'ai pa compris l histoire des 3 fichiers .... tu peux me dire exactement ce ke je doi mettre dans classements.php, classements.html, adminclassements.php
jtavoue que je suis un peu perdu la .... -
adminclassements.html :
------------------------------------------------------------------------------------------------------
<html>
<body>
<form method="post" action="adminclassements.php">
<p> Classement des Seniors A </p>
<p> <textarea name="classementa" id="classementa" rows="20" cols="80"></textarea> <br />
<input type="submit" value="Valider" />
</p>
</form>
</body>
</html>
adminclassements.php :
------------------------------------------------------------------------------------------------------
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("uscs");
if (isset($_POST['classementa']))
{
$classementa = ($_POST['classementa']);
$classementa = nl2br($classementa);
mysql_query("INSERT INTO classementa VALUES('', '" . $classementa . "')");
mysql_close();
require('classements.php');
}
?>
classements.php
----------------------------------------------------------------------------------------------
<p> Classement seniors A
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("uscs");
$reponse = mysql_query("SELECT * FROM classementa ORDER BY ID DESC LIMIT 0,1");
mysql_close();
while($donnees = mysql_fetch_array($reponse))
{
?>
<?php echo $donnees['classementa']; ?>
<?php
}
?>
</p> -
j ai entré le texte dans classements.html puis j appuie sur valider et j obtien ceci sur la page adminclassements.php
Classement seniors A
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\site\classements.php on line 12 -
Essaie cette requête (du moins il me semble que l'ancienne ne corresponde pas par rapport à ta base)
$reponse = mysql_query("SELECT * FROM classementa ORDER BY ID");
- 1
- 2