[script de news]commentaires de news(probleme)

Répondre
bulmam
le 01/02/2007 à 18:21
bulmam
Bonjour, smiley
Je debute en PHP . J'ai installé le script de news que vous prposez et il marche parfaitement, merci.
Desormais,
je souhaiterais l'agrementer d'un script de gestion de commentaires de news.
Pour cela,je me suis aidée de ce tutorial, voila ce que cela affiche quand on clique sur commenter :

Deja le lien affiche l'erreur MYSQL suivante:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/103/sdc/b/b/bulmam/index.php on line 94


Comme vous pouvez le voir, il propose de creer un systeme de commentaire. Mais le probleme c'est que votre script et le sien ne s'accordent pas
Il doit y avoir un probleme au niveau des nom dans les tables, mais je ne voit pas quoi ...

Pour info, le contenu des tables:
News
CREATE TABLE news (
id int(6) NOT NULL auto_increment,
auteur VARCHAR(30) NOT NULL,
titre text NOT NULL,
date datetime NOT NULL default '0000-00-00 00:00:00',
texte_news text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;

commentaires
CREATE TABLE `commentaires` (
`id` int(11) NOT NULL auto_increment,
`pseudo` varchar(255) collate latin1_general_ci NOT NULL,
`message` text collate latin1_general_ci NOT NULL,
`idnews` int(11) NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;


J'ai donc un fichier commentaires.php :
http://www.lephpfacile.com/wall/wall.php?id=3652

Comme vous pouvez le voir sur mon site

le lien affiche l'erreur suivante:
[b]Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/103/sdc/b/b/bulmam/index.php on line 94[/b]

Mais ca je crois que c'est parce qu'il n'y a encore aucun commentaire, non ?
ca correspond à cette partie du code :
(<?php /*Combien a-t-on de commentaires sur cette news ?*/
$infos_com = mysql_query('SELECT COUNT(*) AS nb_com FROM commentaires WHERE idnews=' . $donnees['id']);
$donnees_com = mysql_fetch_array($infos_com);
$totalDesCommentaires = $donnees_com['nb_com'];
echo $totalDesCommentaires;
?>)


Ensuite quand on clique sur le lien , voila ce qui est affiché sur la page commentaires.php:
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 'ORDER BY id DESC' at line 1


je ne vois pas d'ou ca vient ...
aidez svp ...smiley
LA GLOBULE
le 01/02/2007 à 19:27
LA GLOBULE
Fais un :
echo 'SELECT COUNT(*) AS nb_com FROM commentaires WHERE idnews=' . $donnees['id'];

Tu verras la tronche de ta requete SQL telle que mysql la recoit.
Elle doit etre foireuse.
bulmam
le 01/02/2007 à 19:29
bulmam
ok j'essaie ca et je te tien au coourant (je sais meme pas si j'y arriverais ...)
smiley
bulmam
le 01/02/2007 à 19:45
bulmam
Edit: je ne saisit pas bien ..
je vois l'interet de faire ca mais je ne sait pas ou mettre le code

ps: tu es sur que ca se fait ? je ne savais pas ...
merci d'avance
LA GLOBULE
le 01/02/2007 à 20:43
LA GLOBULE
Ben pour débuguer, si tu n'affiches la bouille de ta requete, tu ne pourras pas resoudre ton problème.
Tu n'es pas devin, et moi non plus :)

Donc pour voir pourquoi MySQL gueule "la requete est moche", il faut voir ce que MySQL recoit.
Et pour ca, il faut echo la requete.

Le problème, c'est que vous etes toujours pressé de faire vos mysql_query (c'est pas péjoratif, c'est juste une erreur de débutant), alors qu'en passant par une etape intermediaire, ce genre de debug est enfantin.

Exemple : au lieu de faire direct un mysql_query, stocke ta requete dans une variable, et fais le mysql_query de cette variable.

$sql = 'SELECT COUNT(*) AS nb_com FROM commentaires WHERE idnews=' . $donnees['id'];
$req = mysql_query($sql) or die ($sql.''.mysql_error());

Comme ca, en cas d'erreur,ben tu vois direct la bouille de la requete (le die $sql) et tu vois en plus l'erreur mysql (le die mysql_error).
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours