bigornot Posté 25 Avril 2004 Posté 25 Avril 2004 voilà, j'ai tout essayé, mais, a chaque fois que j'utilise mysql_fetch_array() ou mysql_numrows(), il me met une erreur de ce type Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/0/0/bdbourgeron/redesign/site2/forum/forum.php on line 14 ou ceci : Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/0/0/bdbourgeron/redesign/site2/forum/forum.php on line 14 pourtant, le code est simple : $res = mysql_fetch_array($req); ou ceci : $res = mysql_num_rows($req); je ne comprend plus ...
Dan Posté 25 Avril 2004 Posté 25 Avril 2004 Salut Bigornot, Il est impossible de t'aider pour cela sans savoir ce que contient la variable $req. Elle doit contenir le résultat d'un appel à mysql_query() dans le code qui précède. Dan
Country Posté 25 Avril 2004 Posté 25 Avril 2004 Il doit y avoir une erreur dans la requete passée dans $req Pour voir l'erreur utilise mysql_error() $req = mysql_query("SELECT truc FROM table") or die(mysql_error());$res = mysql_fetch_array($req); De cette fasson si la requete comporte une erreur le chargement s'arrêtera et l'erreur se affichée.
bigornot Posté 25 Avril 2004 Auteur Posté 25 Avril 2004 $db = mysql_connect($db_chemin,$db_user,$db_pass); mysql_select_db($base,$db); $req = mysql_query("SELECT * FROM forum WHERE first!=no ORDER BY idmess DESC"); $res = mysql_num_rows($req); voila tout ... c'est bon, non ? je vois pas trop d'erreur ( et meme pas du tout !)
Dan Posté 25 Avril 2004 Posté 25 Avril 2004 Avec des quotes autour de la valeur: $req = mysql_query("SELECT * FROM forum WHERE first != 'no' ORDER BY idmess DESC"); et pour autant que la table forum et les champs first et idmess existent bien, cela devrait fonctionner Dan
bigornot Posté 25 Avril 2004 Auteur Posté 25 Avril 2004 petite question : voilà ma requete : mysql_query("INSERT INTO `forum`(`idtitre`,`titre`,`pseudo`,`message`,`date`,`heure`,`first` ) VALUES ('$titre', '$titre', '$pseudo', '$message', '$date', '$heure','ok')) or die ("utjgf") comment se fait il qu'elle ne marche pas ? ce n'est pas normal !
pitidev Posté 25 Avril 2004 Posté 25 Avril 2004 probleme sur la double parenthese apres le 'ok' il te manque un " qui ferme le mysql_query("
pitidev Posté 25 Avril 2004 Posté 25 Avril 2004 pour info, certaines fonctions mysql renvoient une erreur si ton recordset a 0 enregistrements ... donc bien penser a ce que tu ais un nombre d'enregistrements >0 avant de faire plus de traitement
bigornot Posté 25 Avril 2004 Auteur Posté 25 Avril 2004 mais, c'est un insert into, donc, les zero enregistrements, c'est pas grave !!
Anonymus Posté 25 Avril 2004 Posté 25 Avril 2004 pour info, certaines fonctions mysql renvoient une erreur si ton recordset a 0 enregistrements ... donc bien penser a ce que tu ais un nombre d'enregistrements >0 avant de faire plus de traitement Attention, ce n'est pas la fonction qui renvoie une erreur, mais la facon dont le script est construit, et une incompréhension du langage. php gère les variables à la volée, autrement dit, il n'est pas besoin de déclarer un type à une variable, et il n'y a meme pas besoin de la définir. Exemple : <? echo $a; ?> On ne connais pas la valeur de $a, et on ne connais meme pas son type (booléen, integer, string, etc..). Donc : on fait une requète sql, qui renvoie 0 (zéro) champs. Et on teste le nombre de champs : if ( zero ) alors ..... Mais pour php, les données 0, FALSE, ERROR, et NON DEFINI c'est du pareil au même. L'erreur vient donc du fait que la personne teste le nombre de champs, et oublie que php peut renvoyer FALSE, ou ERROR. PHP continue donc, en pensant avoir un nombre de champs égal à zéro, alors que le programme renvoyait peut etre une erreur due à une non-connection à la base de données. Voilà. Anonymus.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant