[Résolu]probleme de requete sql

probleme de requete sql [Résolu] - PHP - Programmation

Marsh Posté le 25-05-2005 à 19:55:36    

bonjour a tous.
 
Voilà sur ma page de news qui a une url de ce genre
http://www.monsite.com/news/index.php?num_page=15
 
 
 page= 15 : change suivant la page de la news (ca peut etre n'importe quel chiffre)  
 
15= le numéro de l'id de la news en question également.
 
donc sous chaque page je voudrais afficher le nombre de commentaires de la news en question. je ne sait pas comment faire.
 
voilà la table commentaires
 

Code :
  1. CREATE TABLE `comment` (
  2.   `idcom` int(255) NOT NULL auto_increment,
  3.   `idnews` varchar(255) collate latin1_german1_ci NOT NULL default '',
  4.   `comment` varchar(255) collate latin1_german1_ci NOT NULL default '',
  5.   `pseudo` varchar(255) collate latin1_german1_ci NOT NULL default '',
  6.   `date` varchar(255) collate latin1_german1_ci NOT NULL default '',
  7.   PRIMARY KEY  (`idcom`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=1;


 
 
il me faudrais donc dans cet exemple compter combien de fois le chiffre 15 est présent dans le champs idnews.  
mais bien sur le chiffre 15 , ne sera plus le chiffre 15 sous une autre news , et c'est la le probleme
 
 
donc j'apour ca on ma trouvé la solution : c'est:
 

Code :
  1. <?$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM comment WHERE idnews='".$_GET['num_page']."' " );
  2. $donnees = mysql_fetch_array($retour);
  3. echo $donnees['nbre_entrees'];?>


 
 
maintenant comment puis je faire pour qu'il m'affiche le commentaire (comment) le pseudo et la date , aussi .  
c'est a dire tous les commentaires associé a cette news dans l'ordre du plus recent au plus ancien  ?


Message édité par wydook le 25-05-2005 à 23:31:17
Reply

Marsh Posté le 25-05-2005 à 19:55:36   

Reply

Marsh Posté le 25-05-2005 à 21:02:49    

Tiré de la doc :  

Code :
  1. <?php
  2. mysql_connect("localhost", "mysql_user", "mysql_password" ) or
  3.    die("Could not connect: " . mysql_error());
  4. mysql_select_db("mydb" );
  5. $result = mysql_query("SELECT id, name FROM mytable" );
  6. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  7.    printf("ID: %s  Name: %s", $row[0], $row[1]);
  8. }
  9. mysql_free_result($result);
  10. ?>


 
Essaye de l'adapter seul et si tu as du mal, reviens nous voir :p
 
EDIT : Je suis allé voir ton site(je suppose que c'est le tien.) et :o Vire moi ce menu plein de JavaScript et complètement inutilisable sans JavaScript.  


Message édité par yoyo354 le 25-05-2005 à 21:05:33
Reply

Marsh Posté le 25-05-2005 à 21:14:20    

je vient de faire ca:
 

Code :
  1. <? mysql_connect("localhost", "***", "***" ) or
  2.    die("Could not connect: " . mysql_error());
  3. mysql_select_db("***" );
  4. $result = mysql_query("SELECT comment, pseudo FROM comment" );
  5. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  6.    printf("ID: %s  pseudo: %s", $row[0], $row[1]); 
  7. }
  8. mysql_free_result($result); ?>


 
 
et me met ca
 
ID: test1 pseudo: wydook66ID: test2 pseudo: wydook66ID: test3 pseudo: wydook66
 
et ca ecrit pareil sur les autre news

Reply

Marsh Posté le 25-05-2005 à 21:21:44    

wydook a écrit :

je vient de faire ca:
 

Code :
  1. <? mysql_connect("localhost", "***", "***" ) or
  2.    die("Could not connect: " . mysql_error());
  3. mysql_select_db("***" );
  4. $result = mysql_query("SELECT comment, pseudo FROM comment" );
  5. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  6.    printf("ID: %s  pseudo: %s", $row[0], $row[1]); 
  7. }
  8. mysql_free_result($result); ?>


 
 
et me met ca
 
ID: test1 pseudo: wydook66ID: test2 pseudo: wydook66ID: test3 pseudo: wydook66
 
et ca ecrit pareil sur les autre news


 
Et ben c'est très bien. Pour l'ordre, éssaye avec :  
 
 

Code :
  1. <? mysql_connect("localhost", "***", "***" ) or
  2.    die("Could not connect: " . mysql_error());
  3. mysql_select_db("***" );
  4. $result = mysql_query("SELECT comment, pseudo FROM comment DESC" );
  5. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  6.    printf(
  7.           "<p>ID: %s  ;<br />\n Pseudo: %s ;<br />\n Bla :<br />\n %s ;<br />\n Bla : %s ;<br />\nBla : %s ;</p>\n",
  8.           $row[0], $row[1], $row[2], $row[3], $row[4]); 
  9. }
  10. mysql_free_result($result); ?>


Message édité par yoyo354 le 25-05-2005 à 21:23:38
Reply

Marsh Posté le 25-05-2005 à 21:28:07    

la y a un message d'erreur
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/news/index.php on line 185
 
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/news/index.php on line 189
 
 
apparement ca vient de cette ligne
 

Code :
  1. while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
  2.    printf("<p>ID: %s  ;<br />\n Pseudo: %s ;<br />\n Bla :<br />\n %s ;<br />\n Bla : %s ;<br />\nBla : %s ;</p>", $row[0], $row[1], $row[2], $row[3], $row[4]); 
  3. }

 
 
mysql_free_result($result); ?>


Message édité par wydook le 25-05-2005 à 21:28:19
Reply

Marsh Posté le 25-05-2005 à 21:30:35    

wydook a écrit :

la y a un message d'erreur
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/news/index.php on line 185
 
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/news/index.php on line 189
 
 
apparement ca vient de cette ligne
 

Code :
  1. while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
  2.    printf("<p>ID: %s  ;<br />\n Pseudo: %s ;<br />\n Bla :<br />\n %s ;<br />\n Bla : %s ;<br />\nBla : %s ;</p>", $row[0], $row[1], $row[2], $row[3], $row[4]); 
  3. }

 
 
mysql_free_result($result); ?>


Le problème vient de la requête. Essaye avec :

Code :
  1. $result = mysql_query("SELECT comment, pseudo FROM comment ORDER BY DESC" );


 
 

Reply

Marsh Posté le 25-05-2005 à 21:35:57    

plutot :

Code :
  1. $result = mysql_query("SELECT comment, pseudo, date FROM comment ORDER BY date DESC" );

Reply

Marsh Posté le 25-05-2005 à 21:36:24    

La bonne syntaxe :

Code :
  1. ORDER BY idcom DESC


Parce que trié par le champs 'comment' n'a que peu d'interet ...

Reply

Marsh Posté le 25-05-2005 à 21:36:39    

ben ca veut toujours pas :(
 
j'ai mis ca actuellement
 
 
 

Code :
  1. <? mysql_connect("localhost", "***", "***" ) or
  2.    die("Could not connect: " . mysql_error());
  3. mysql_select_db("***" ); 
  4. $result = mysql_query("SELECT comment, pseudo FROM comment ORDER BY DESC" );
  5. while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
  6.    printf("<p>ID: %s  ;<br />\n Pseudo: %s ;<br />\n Bla :<br />\n %s ;<br />\n Bla : %s ;<br />\nBla : %s ;</p>", $row[0], $row[1], $row[2], $row[3], $row[4]); 
  7. mysql_free_result($result); ?>

Reply

Marsh Posté le 25-05-2005 à 21:39:29    

afbilou a écrit :

La bonne syntaxe :

Code :
  1. ORDER BY idcom DESC


Parce que trié par le champs 'comment' n'a que peu d'interet ...


 
et pourquoi pas trie par date ? ca revient au meme par Id ok mais tout de meme...

Reply

Marsh Posté le 25-05-2005 à 21:39:29   

Reply

Marsh Posté le 25-05-2005 à 21:44:37    

bon la ca marche avec les deux dernieres solution , cependant il m'affiche tous les commentaires de toutes les news , et moi je voudrais que ce soit uniquement les commentaires de la nws du dessus qui soit en dessous , . Idem pour les autre news ( a chaque news ses commentaires en dessous )


Message édité par wydook le 25-05-2005 à 21:45:01
Reply

Marsh Posté le 25-05-2005 à 21:45:50    

Moi et le sql.... :p  

Code :
  1. SELECT comment, pseudo FROM comment WHERE idnews=$num_page ORDER BY idcom DESC


 
Avant tu récupères ton $num_page avec $_GET tout en protégeant un minimum.


Message édité par yoyo354 le 25-05-2005 à 21:47:36
Reply

Marsh Posté le 25-05-2005 à 21:59:46    

impeccable .
 
Merci a vous tous et bonne soirée :)

Reply

Marsh Posté le 25-05-2005 à 22:03:36    

Note : n'oublies pas de mettre le tag [Résolu].
 
Et bonne soirée à toi aussi.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed