enregistrement les plus récents, aléatoires...

Eléphant du PHP | 51 Messages

27 mai 2008, 18:15

Salut,

j'ai une base de donnée avec une table pour stocker les jeux de mon site (http://jeuxenligne.freehostia.com/jeu/).
Voici le code:

Code : Tout sélectionner

CREATE TABLE `jeu` ( `ID` mediumint(9) NOT NULL auto_increment, `nom` varchar(50) NOT NULL default '', `but` text NOT NULL, `trucs` text NOT NULL, `larg` text NOT NULL, `haut` text NOT NULL, `date` date NOT NULL, //date d'ajout `categorie` enum('course','tir','action','reflexion','sport','arcade') NOT NULL default 'course', `adresseabs` varchar(250) NOT NULL default '', `aprouve` enum('0','1') default '0', UNIQUE KEY `ID` (`ID`), UNIQUE KEY `adresseabs` (`adresseabs`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
elle me sert à générer des pages dynamiques pour chaque jeu.

Fini pour l'introduction, passons aux choses sérieuses:

J'aimerais sélectionner 5 enregistrements de cette table selon ce critère: la date d'ajout (=> jeux les plus récents) et 5 autres aléatoirement.

Quelqu'un aurait t-il une idée de comment sa marche? Un truc genre

Code : Tout sélectionner

SELECT * FROM `jeu` WHERE date=récente LIMIT 0,5
et

Code : Tout sélectionner

SELECT * FROM `jeu` WHERE au hasard LIMIT 0,5
Pas mal de questions, je sais. Mais bon...

Merci d'avance
La bave du crapaud n'atteinds pas la blanche colombe.
Site principal: CiaoNetwork
http://blog.ciaonetwork.com

ViPHP
ViPHP | 2291 Messages

27 mai 2008, 18:42

Salut,

Pour les derniers engistrement
ORDER BY xxxxx DESC 
Et pour ton affichage aléatoire regarde du coter de
array_rand
Peut-être :?: :wink:

Eléphant du PHP | 51 Messages

27 mai 2008, 20:09

Merci beaucoup pour les enregistrements aléatoires. =D> :agenouille:
Pour les derniers enregistrement
ORDER BY xxxxx DESC
J'ai pas compris par contre pour le tri par date. Pourrais tu préciser? :?:
La bave du crapaud n'atteinds pas la blanche colombe.
Site principal: CiaoNetwork
http://blog.ciaonetwork.com

ViPHP
ViPHP | 2291 Messages

27 mai 2008, 20:22

Merci beaucoup pour les enregistrements aléatoires. =D> :agenouille:
Pour les derniers enregistrement
ORDER BY xxxxx DESC
J'ai pas compris par contre pour le tri par date. Pourrais tu préciser? :?:
J'ai lu trop vite j'ai mis cela pour les dernier enregistrement sorry :oops:

Maintenant concernant une recher par date essaye de jouer avec ces fonction
WHERE YEAR(date) = YEAR(CURDATE()) AND MONTH(date) = MONTH(CURDATE())

ViPHP
AB
ViPHP | 5818 Messages

27 mai 2008, 22:06

Sinon pour les plus récents, si j'ai bien compris les commentaires de ta table, les plus récents correspondent à ceux qui sont les derniers ajoutés. En même temps tu as une colonne ID auto incrémentée donc l'idée première de dumbar devrait fonctionner

Code : Tout sélectionner

SELECT * FROM `jeu` ORDER BY ID DESC LIMIT 0,5

ViPHP
AB
ViPHP | 5818 Messages

27 mai 2008, 22:25

Concernant la fonction array_rand(), pour l'utiliser tu devras faire un tableau correspondant à tes enregistrements donc faire au préalable une requête sur tous tes enregistrements et lister ce résultat dans ton tableau.

Si tu n'a pas besoin de cette requête complète (et donc du tableau complet) tu peux simplement faire le tri aléatoire au niveau de ta requête
SELECT * FROM jeu ORDER BY RAND() LIMIT 5

Eléphant du PHP | 51 Messages

28 mai 2008, 20:38

Merci, vous êtes des dieux

:agenouille: :boire4: \:D/
La bave du crapaud n'atteinds pas la blanche colombe.
Site principal: CiaoNetwork
http://blog.ciaonetwork.com