PHP, MySQL : Sections aléatoires

Résolu
Olivier20 -  
 Olivier20 -
Bonjour tout le monde,

Je suis actuellement face à un problème que j’essai de résoudre depuis plusieurs sans et je n'arrive toujours pas à le résoudre.
J’ai une base de données qui contient 150 articles avec leurs "titre", "description", "ID", "titre", "vue", etc. Je voudrais sélectionner 5 articles de manière aléatoire avec leurs titres, id et vue.

Comment je peux faire pour cela, je pense que "foreach" de php est bien adapté, mais je ne sais pas l’utiliser.

PS: "titre", "description", "ID", "titre", "vue", sont des champs d'une table.

Quelqu’un peut m’aider svp ?

Merci d’avance pour votre aide
Configuration: Windows XP
Firefox 3.0.8

9 réponses

  1. Olivier20
     
    Oups, je me suis tromper dans le titre, je voulais mettre :
    PHP, MySQL : Sélections aléatoires
    0
  2. P@t@ch0n Messages postés 603 Statut Membre 85
     
    SELECT ID, titre, description, vue FROM latable
    ORDER BY RAND() LIMIT ;
    Tout simplement.

    Pour info, il y aussi en php, il y a array_rand() et shuffle()
    0
  3. Olivier20
     
    Merci pour ta réponse,

    C'est exactement ce que j'utilise pour récupérer les données, mais je ne sais pas comment faire pour afficher ces 5 articles de manière aléatoire.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. P@t@ch0n Messages postés 603 Statut Membre 85
     
    Ils ont déjà été prit de manière aléatoire.

    Il ne te reste plus qu'à les afficher, et c'est tout ;)
    0
  6. Olivier20
     
    Bonjour,

    Super, j'ai fini par trouver comment afficher ces articles. Mais maintenant je suis confronter à un autre probleme :

    Les 5 articles qui s'affichent comportes par fois des articles qui sont hors-ligne. Les articles hors-ligne ont un champ (horsligne) qui est égale à " 0". Comment faire pour sélectionner ces 5 articles en tenant compte du champ "horsligne" ? Utiliser une condition dans la requête sql ?
    0
  7. scriptiz Messages postés 1494 Statut Membre 425
     
    SELECT ID, titre, description, vue FROM latable
    WHERE horsligne!=0
    ORDER BY RAND() LIMIT ;
    0
    1. Olivier20
       
      Merci,
      Comme on dit un bruit peut cacher un autre :-) je viens de voir qu'il y a 2 champ à exclure : horsligne et statut

      Voici ma requête à l'origine. Celle qui marche :

      SELECT ID, titre, description, vue FROM latable
      WHERE cid='$leCid' <<==== Pour effectuer une sélection dans la catégorie courante
      ORDER BY RAND() LIMIT 5 ;
      


      La nouvelle qui ne marche pas :

      SELECT ID, titre, description, vue FROM latable
      WHERE cid='$leCid'  horsligne!=0 statut!=0
      ORDER BY RAND() LIMIT 5 ;
      


      WHERE cid='$leCid' horsligne!=0 statut!=0 : est correcte ?
      0
  8. Alain_42 Messages postés 5413 Statut Membre 904
     
    Non il faut des AND entre chaque condition

    SELECT ID, titre, description, vue FROM latable
    WHERE cid='$leCid' AND  horsligne!=0 AND statut!=0
    ORDER BY RAND() LIMIT 5 ;
    
    0
  9. Olivier20
     
    Merci beaucoup, ça marche bien avec "AND".

    Excellente journée à vous tous !

    Problèmes résolus.
    0