Bonjour,

je suis novice dans le domaine du developpement web, et j'essaie de créer un forum en php : MySql.


au début j'ai créé une page qui affiche les message les un après les autres, et qui les enregistre dans une base de données ( forum_messages)
Mnt je veux faire gérer les réponses eventuelles a ces messages.
une fois que j'execute ma page dans mozilla, il m'affiche le message suivant :


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 3.0\www\forum\index1.php on line 146
le script est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
 
<?php
/* Mini-forum en PHP */
 
// === CONNEXION A LA BD ===
 
//$isLocal = ($_SERVER["SERVER_NAME"]=="localhost");
 
// On teste si on est en local 
//$isLocal=($_SERVER["SERVER_NAME"]=="localhost");
 
 
$isLocal = TRUE;
// Paramètres de connexion en local ou sur site
 
$host = ($isLocal) ? "localhost" : "localhost"; 
$user = ($isLocal) ? "root" : "root"; 
$pass = ($isLocal) ? "mdp" : "mdp"; 
$bdd = ($isLocal) ? "forum" : "forum";
 
// connexion a la base de donnees
 
$link = mysql_connect($host,$user,$pass);
mysql_select_db($bdd); 
 
 
// Variables
 
if(isset($_POST['pseudo']))      $pseudo=$_POST['pseudo'];
else      $pseudo="";
if(isset($_POST['email']))      $email=$_POST['email'];
else      $email="";
if(isset($_POST['message']))      $message=$_POST['message'];
else      $message="";
if(isset($_POST['reponse']))      $reponse=$_POST['reponse'];
else      $reponse="";
 
 
$login=addslashes($pseudo); // addslashes gere les caratères spéciaux dans le champ spécifié
$email=addslashes($email); 
$message=addslashes($message);
$reponse=addslashes($reponse);
 
 
// === AJOUT D'UN MESSAGE EVENTUEL ===
 
if(@$_POST["message"]) {
 
$SQL="INSERT INTO forum_messages (quand,pseudo,email,message,reponse) VALUES (".time().",'".$pseudo."','".$email."','".$message."','".$reponse."')";
$res=mysql_db_query($bdd,$SQL,$link) or die ('Insertion dans la base de données du site impossible '.$SQL.' '.mysql_error()); 
}
 
// === AFFICHAGE DE LA PAGE ===
?>
 
 
<HTML><HEAD>
   <TITLE>Mini-forum DunDal: </TITLE>
 
</HEAD><BODY bgcolor="#FFFFFF"><center>
<SCRIPT language="Javascript">
<!--
      function repond(id) {
         document.form1.reponse.value= id
         document.form1.submit()
      }
//-->
</SCRIPT>
 
 
   <!-- Formulaire de saisie -->
 
<table>
      <form method="post" action="index1.php" name="form1">
         <tr>
            <td align=right>Pseudo</td><td>
               <input name="pseudo" maxlength=15>
            </td><td rowspan=3>
               <textarea name="message" cols=60 rows=5
                  ></textarea>
            </td>
         </tr><tr>
            <td align=right>Email</td><td>
               <input name="email" maxlength=50>
            </td>
         </tr><tr>
            <td colspan=2 align=center>
               <input type="submit" value="Nouveau sujet">
               <input type="hidden" name="reponse"> 
            </td>
         </tr>
      </form>
</table> 
 
 
 
 
   <!-- Affichage des messages -->
 
<table border=1 cellspacing=0 cellpadding=5 width=100%>
 
<?php 
// j'ai rappelé $link ici car sinon j'ai un probleme de connexion avec la bdd
 
$link = mysql_connect($host,$user,$pass);
mysql_select_db($bdd); 
 
 
// Fonction d'écriture des messages et réponses
function ecrit($id) {
 
   $SQL = "SELECT * FROM forum_messages WHERE ID= ".$id."OR reponse= ".$id." ORDER BY ID";
   $res = mysql_query($SQL);
   $id = mysql_insert_id();
 
   // tant qu'il y a des messages
   while($val=mysql_fetch_array($res)) {
      // Bouton "Répondre" 
      if(!$val["reponse"]) {
         echo "<button onclick='repond(".$val["ID"].")'>"
            . "Répondre</button>";
      } else {
         echo "<hr size=1>";
      }
      // Ecrit la date du message
      echo date("d/m/Y",$val["quand"]);
      // Ecrit le pseudo de l'auteur
      echo " - ".$val["pseudo"];
      echo "<br>";
      // Ecrit le message
      echo htmlentities($val["message"]);
   } 
 
 
}
 
 
      // Requête de sélection des messages initiaux
      $SQL = "SELECT ID FROM forum_messages WHERE reponse=0 ORDER BY ID DESC";
      $res = mysql_query($SQL);
      // Tant qu'il y a des messages
      while($val=mysql_fetch_array($res)) {
         // Nouvelle ligne
         echo "<tr><td>";
         // Ecrit le message et ses réponses
         ecrit($val["ID"]);
         // Fin de ligne
         echo "</td></tr>";
     }
 
?>
 
 
 
 
 
</table>
 
</center></BODY></HTML>
 
 
<?php
// === DECONNEXION ===
mysql_close();
 
?>
Donc voila, si vous pouvez m'aidez , je crois que le problème viens de la fonction mysql_fetch_array, mais je ne suis pas sûre !!!!

Merci d'avance pour votre aide