Textarea dans bdd

Bonjour à tous !

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

Résumé de la discussion

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é.

Bobot (l’IA à votre service)
  1. Essaie de mettre des or die(mysql_error()); pour voir si il y a des erreurs dans tes requêtes ou autre
    0
    1. tout d'abord merci de ton aide ( si rapide !! ) ... tu peux préciser où ?? je m excuse je suis vraiment débutant !!!
      0
  2. 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 ?
    0
    1. je me sers de mysql

      Malgré ce changement il n'y a tjrs rien d'enregistré sur la table ...

      Mais je n'ai aucun message d' erreur....
      0
  3. Mais ta requête m'étonne un peu en fait, tu peux me donner la structure de la table stp ^
    0
    1. 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
      0
      1. Ok, essaie de refaire ta requête comme suit : mysql_query("INSERT INTO classementa VALUES('" . $classementa . "')");
        0
        1. tjrs rien .....

          ça m'énerve !!!!
          0
      2. 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;
        0
        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
          0
          1. Ha oui, désolé, enlève les parenthèses autour de TEXT
            0
            1. j ai tjrs le meme message d'erreur !!!
              0
          2. Quelque chose m'échappe, cela fonctionne chez moi :s
            0
            1. Jsuis confus ... sa a marché !! je test et jte redis
              0
              1. 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...
                0
                1. 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).
                  0
                  1. Dans ta page adminclassements.php :

                    Change <form method="post" action="classements.php"> par <form method="post" action="adminclassements.php">
                    0
                    1. 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
                      0
                      1. Sinon, fais comme je t'ai dit, avec deux fichiers.
                        0
                        1. 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 ....
                          0
                          1. 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>
                            0
                            1. 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
                              0
                              1. 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");
                                0
                                • 1
                                • 2