Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur dans le TP?

Moi pas comprendre...

    26 novembre 2005 à 23:26:36

    Je fais le tp MINICHAT pour le mysql et je me demande un truc c'est que j'ai toujours cette erreur :


    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\documents and settings\aurélien\mes documents\site\php\chat.php on line 73


    Et voila la ligne en question (du copier coller)
    while ($donnees = mysql_fetch_array($reponse) )


    Je comprend pas :/

    Meme en fesant tout le code en copier colelr (enfin juste adapter la bdd) j'y arrive pas :?
    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2005 à 23:28:48

      regarde $reponse.
      dedans tu as du mettre mysql_query("SELECT ....");

      eh bien dans ça il y'a un nom qui va pas.

      met le code de $reponse et ta bdd ici.
      je te dirais le pb.
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2005 à 23:33:57

        Fais voir la requête SQL $reponse :)
        • Partager sur Facebook
        • Partager sur Twitter
          26 novembre 2005 à 23:33:58


          mysql_connect("localhost", "root");
          mysql_select_db("tp_mysql");

          // ON utilise la requête suivante pour récupérer les 10 derniers messages :
          $reponse = mysql_query("SELECT * FROM tp_mysql ORDER BY ID DESC LIMIT 0,10");

          // ON se déconnecte de MySQL
          mysql_close();


          Voila ^^

          Sinon en entrée (bon nom? o_O ) j'ai ID, pseudo et message
          • Partager sur Facebook
          • Partager sur Twitter
            26 novembre 2005 à 23:35:41

            La requête a l'air bonne, rajoute un or die(mysql_error()); juste après :

            <?php
            $reponse = mysql_query("SELECT * FROM tp_mysql ORDER BY ID DESC LIMIT 0,10") or die(mysql_error());
            ?>


            Et donne l'erreur retournée ;)
            • Partager sur Facebook
            • Partager sur Twitter
              26 novembre 2005 à 23:37:37

              oui essaye ça.

              t'es sur que le nom c'est "ID" et pas "id", php fais la difference.
              • Partager sur Facebook
              • Partager sur Twitter
                26 novembre 2005 à 23:41:41

                Champ Type Interclassement Attributs Null Défaut Extra Action
                ID mediumint(9) Non 0 Modifier Supprimer Primaire Index Unique Texte entier


                Et j'ai deja corrigé une erreure : tp_mysql c'est ma table pas ma bdd ^^

                J'ai changer, je ne voie plus le message d'erreure masi j'arrive toujours pas a poster :/

                Edit : J'a fait le truc pour trouver l'erreur il trouve rien...
                • Partager sur Facebook
                • Partager sur Twitter
                  26 novembre 2005 à 23:46:29

                  là c'est une autre erreur, faut qu'on voye ton code pour dire pourquoi tu peux plus poster.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 novembre 2005 à 23:48:02

                    C'est du copier coller du code du corrigé donc je pige pas...

                    Enfin voila le code :

                    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
                        <head>
                            <title>Mini-chat</title>
                            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                        </head>
                        <style type="text/css">
                        form
                        {
                        text-align:center;
                        }
                        </style>
                        <body>


                    <?php
                    if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
                    {
                        if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
                        {
                            // D'abord, on se connecte à MySQL
                            mysql_connect("localhost", "root");
                            mysql_select_db("base test");

                            // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
                            $message = htmlentities ($_POST['message']);
                            $pseudo = htmlentities ($_POST['pseudo']);

                            // Ensuite on enregistre le message
                            mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");

                            // On se déconnecte de MySQL
                            mysql_close();
                        }
                    }


                    // Que l'on ait enregistré des données ou pas...
                    // On affiche le formulaire puis les 10 derniers messages

                    // Tout d'abord le formulaire :
                    ?>



                    <form action="chat.php" method="post">

                    <p>
                    Pseudo : <input type="text" name="pseudo" /><br />
                    Message :  <input type="text" name="message" /><br />

                    <input type="submit" value="Envoyer" />
                    </p>

                    </form>



                    <?php

                    // Maintenant on doit récupérer les 10 dernières entrées de la table
                    // On se connecte d'abord à MySQL :
                    mysql_connect("localhost", "root");
                    mysql_select_db("base test");

                    // On utilise la requête suivante pour récupérer les 10 derniers messages :
                    $reponse = mysql_query("SELECT * FROM tp_mysql ORDER BY ID DESC LIMIT 0,10") or die(mysql_error());

                    // On se déconnecte de MySQL
                    mysql_close();

                    // Puis on fait une boucle pour afficher tous les résultats :
                    while ($donnees = mysql_fetch_array($reponse) )
                    {
                    ?>

                    <p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>



                    <?php
                    }
                    // Fin de la boucle, le script est terminé !
                    ?>


                        </body>
                    </html>



                    C'est bon je viens de trouver mon erreure, c'est tout con, j'avais oublier de changer un truc par rapport au corrigé :D
                    • Partager sur Facebook
                    • Partager sur Twitter
                      26 novembre 2005 à 23:58:14

                      Hign, il est bizarre ton code o_O

                      Dans ta première requête (insertion), ta table s'appelle "minichat" (mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");), puis dans ta seconde requête, ta table s'appelle tp_mysql ($reponse = mysql_query("SELECT * FROM tp_mysql ORDER BY ID DESC LIMIT 0,10") or die(mysql_error());)...

                      Il faut que le nom soit le même :D
                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 novembre 2005 à 0:03:57

                        Ouais je sais, j'ai mis un EDIT avant pour dire que j'avais trouver et que maintenant ca marche :D

                        Merci a vous ;)

                        Résolu ^^
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 février 2006 à 19:55:55

                          Tu as mis :

                          mysql_connect("localhost", "root");
                          mysql_select_db("tp_mysql");

                          // ON utilise la requête suivante pour récupérer les 10 derniers messages :
                          $reponse = mysql_query("SELECT * FROM tp_mysql ORDER BY ID DESC LIMIT 0,10");

                          // ON se déconnecte de MySQL
                          mysql_close();

                          Tu aurais du mettre :


                          mysql_connect("localhost", "root", "");
                          mysql_select_db("tp_mysql");

                          // ON utilise la requête suivante pour récupérer les 10 derniers messages :
                          $reponse = mysql_query("SELECT * FROM tp_mysql ORDER BY ID DESC LIMIT 0,10");

                          // ON se déconnecte de MySQL
                          mysql_close();
                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 février 2006 à 19:57:54

                            Hum, pourquoi t'as remonté le topic ? oO
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Erreur dans le TP?

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown