PHP aleatoire Problème de débutant.

PHP aleatoire Problème de débutant. - PHP - Programmation

Marsh Posté le 30-01-2008 à 20:31:54    

Bonsoir !
 
Je suis entrain d'essayer de coder un script qui affiche 1 article ( en le cherchant dans la base de donnée ) d'une seul catégoris de manière aléatoire.
J'y suis arrivé, en partie, mon code affiche tout ce qui à dans la table :s
 
 
La table dc_post :

Code :
  1. post_id      int(11)        Non     auto_increment 
  2. user_id      varchar(32)
  3. cat_id               int(11)
  4. post_dt     datetime
  5. post_creadt    date
  6. post_upddt    datetime
  7. post_titre      varchar(255)
  8. post_titre_url     varchar(255)
  9. post_chapo    longtext     
  10. post_chapo_wiki  longtext     
  11. post_content  longtext       
  12. post_content_wiki   longtext     
  13. post_notes  longtext
  14. post_pub    int(1)
  15. post_selected   int(1)
  16. post_open_comment   int(1)           
  17. post_open_tb  int(1)
  18. nb_comment  int(11)
  19. nb_trackback  int(11)
  20. post_lang  varchar(5)


 
 
 
 
Catégoris afficher voulu : 2
 
 
Le code :

Code :
  1. <?php
  2.   @mysql_connect('localhost','root','');
  3.   @mysql_select_db('dotclear');
  4. //Affichage du bandeau advertising
  5. // Requete donnant le nombre de bandeaux dispo et mettre un bandeau au hasard
  6. $queryh = "SELECT * FROM dc_post" ;
  7. $resulth = mysql_query($queryh) or die('Erreur SQL : '.mysql_error());
  8. $advert = mysql_num_rows($resulth);
  9. $hasard = rand(2,$advert);
  10. //Affichage du bandeau
  11. $query = "SELECT post_chapo FROM dc_post WHERE cat_id = ".$hasard ;
  12. // Execute la requete precedente
  13. $result = mysql_query($query) or die('Erreur SQL : '.mysql_error());
  14. while ($val = mysql_fetch_array($result))
  15. {
  16. echo $val["post_chapo"];
  17. }
  18. ?>


 
 
 
Résultat, il y a tout qui s'affiche ...
J'espère que je suis assez clair ...  :sweat:

Reply

Marsh Posté le 30-01-2008 à 20:31:54   

Reply

Marsh Posté le 30-01-2008 à 21:06:08    

pour ta requête, tu peux utiliser le code suivant, ça fonctionne aussi bien :
 

Code :
  1. $query = "SELECT post_chapo FROM dc_post ORDER BY RAND LIMIT 1


 
si tous tes articles sont dans la même catégorie, forcément ça affiche tout. si tu continue avec la génération d'un nombre aléatoire, base toi plutôt sur le "post_id", mais ma méthode fonctionnera dans tous les cas, avec un nombre aléatoire sur le post_id tu peux tomber sur un n° d'article qui n'existe pas.


Message édité par soulmanto le 30-01-2008 à 21:08:04
Reply

Marsh Posté le 30-01-2008 à 21:57:05    

Merci, c'est nickel :)
 
Pour piocher dans la catégoris que je voulais j'ai fais ça :
 
 

Code :
  1. $query = "SELECT post_chapo FROM dc_post WHERE cat_id='2' ORDER BY RAND() LIMIT 1";


 
 
Encore merci :)

Reply

Sujets relatifs:

Leave a Replay

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