Probleme avec php

Résolu
Bonjour,

je travail sur la réalisation d'un minichat sur mon site :
le problème est que mon code ne marche pas .

voici mon 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("minichat");
 
        // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
        $pseudo = mysql_real_escape_string(htmlspecialchars($_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="index.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("minichat");
 
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
 
// 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>

  


et voici la reponse afficher par wamp:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\www.eureka.com\index.php on line 73

quelle est le problème?

merci a tous!
Configuration: Windows Vista
Firefox 2.0.0.14

3 réponses

  1. Contributeur
    Bonjour,

    je ne suis pas vraiment certain mais tu te déconnectes avant même de faire ta boucle alors moi personnellement j'essaierais ceci :

    enleve ton :

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

    et met le à la fin complètement soit:

    <?php
    }
    // Fin de la boucle, le script est terminé !
    // On se déconnecte de MySQL
    mysql_close();
    ?>
    
    1
    1. merci! RICKY38 ! mais ca ne marche pas.
      0
  2. Contributeur
    Bonjour,

    as-tu bien créé ta table dans la base de donnée?

    Cordialement

    Revan
    0
    1. oui! ravan j'ai cree ma table avec :un ID , un speudo ET un message
      mais ca ne marche pas.
      0
    2. Contributeur
      @morykeitaJ'ai testé ton code et chez moi ça fonctionne sans problème. donc la seule chose qui change entre chez toi et chez moi c'est la base de donnée.

      explique exactement comment tu as organisé ta base de donnée. nom de la base, nom de la table, etc stp.

      Qu'elle est le nom de ta base de donnée? le nom de ta base?

      A mon avis le problème est là:

      / 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("minichat");
      


      et plus précisément c'est le mysql_select_db("minichat");

      je pense que ta base de donnée ne s'appelle pas minichat et que tu as confondu avec la table qui s'appelle "minichat".
      0
    3. @Revan26914le nom de ma base est : minichat.

      meci!
      0
    4. @morykeitamysql_connect("localhost", "root", "root");

      et avec ça ?
      0
    5. @Torkassa torkass

      si je fais cela wamp affiche:

      Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:\wamp\www\www.eureka.com\index.php on line 63

      Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\www.eureka.com\index.php on line 73
      0
  3. Contributeur
    je viens de refaire un test chez moi en utilisant exactement les même nom que toi, et ça marche parfaitement.

    dans ton phpMyAdmin tu devrais arriver à ça==>http://www.cijoint.fr/cj200805/cijo5kJXls.jpg

    est-ce le cas?

    0
    1. oui c'est le cas , les meme image ;
      0
    2. @morykeitaPeux-tu nous faire un screen de la tienne pour être sûrs ?
      Un détail t'a peut-être échappé.
      0
    3. Contributeur
      @TorkassJe suis d'accord avec Torkass^^

      puisque chez moi ça fonctionne très bien^^

      il doit s'agir d'une petite faute d'inattention quelque part^^

      0
    4. @Revan26914salut raven !

      merci merci! j'ai enfin ressui ; en effet je me deconnectait trop vite avant que le message ne sois en enregistre.

      merci a tous les amis ! je ne sais ce que j'aurais fais sans vous.
      0
    5. Contributeur
      @morykeitaDe rien^^

      bonne soirée

      @+ ;-)

      0