PHP, MySQL : Sections aléatoires

Résolu
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. Oups, je me suis tromper dans le titre, je voulais mettre :
    PHP, MySQL : Sélections aléatoires
    1. 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()
      1. 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.
        1. Ils ont déjà été prit de manière aléatoire.

          Il ne te reste plus qu'à les afficher, et c'est tout ;)
          1. 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 ?
            1. SELECT ID, titre, description, vue FROM latable
              WHERE horsligne!=0
              ORDER BY RAND() LIMIT ;
              1. 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 ?
            2. 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 ;
              
              1. Merci beaucoup, ça marche bien avec "AND".

                Excellente journée à vous tous !

                Problèmes résolus.