PHP, MySQL : Sections aléatoires

Résolu/Fermé
Olivier20 - 25 avril 2009 à 18:59
 Olivier20 - 26 avril 2009 à 17:16
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

9 réponses

Oups, je me suis tromper dans le titre, je voulais mettre :
PHP, MySQL : Sélections aléatoires
0
Vous n'avez une idée ?
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
25 avril 2009 à 20:43
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
26 avril 2009 à 00:27
Ils ont déjà été prit de manière aléatoire.

Il ne te reste plus qu'à les afficher, et c'est tout ;)
0
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
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
26 avril 2009 à 15:34
SELECT ID, titre, description, vue FROM latable
WHERE horsligne!=0
ORDER BY RAND() LIMIT ;
0
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 avril 2009 à 17:12
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
Merci beaucoup, ça marche bien avec "AND".

Excellente journée à vous tous !

Problèmes résolus.
0