Page 1 sur 1
Est-il possible de faire une requete suivant la date du jour
Posté : 29 mars 2006, 08:05
par Stegue
Bonjour,
Je voudrais afficher la citation du jour. Les citations sont tirées d'un bdd.
Est-ce possible d'afficher une nouvelle tous les jours par une condition ?
En ce moment, j'en ai une nouvelle à chaque actualisation de la page avec ça :
$reponse = mysql_query("SELECT citateurs_celebres.nom, citateurs_celebres.prenom, citations_celebres.citation FROM citateurs_celebres LEFT JOIN citations_celebres ON citateurs_celebres.id = citations_celebres.numcitateur ORDER BY rand() LIMIT 0, 1");
Merci.
Posté : 29 mars 2006, 08:42
par DocType
tu mets un clause WHERE dans ta requête en comparant ton champ date avec la date du jour

Posté : 29 mars 2006, 10:20
par Stegue
Ah! faut un champ date dans la base ?

Posté : 29 mars 2006, 10:31
par zeus
Comment est-ce que tu définies que la citation est du jour ou non ?
Posté : 29 mars 2006, 11:19
par Stegue
Actuellement ma requete appelle une citation au hasard dans la bdd.
Je voudrais rajouter une condition (si c'est possible), par ex, on est le 29 et on garde la même citation jusqu'au passage au 30 et ainsi de suite.
Posté : 29 mars 2006, 11:20
par zeus
ça, j'ai compris. Ce que je voudrais savoir, c'est comment est-ce que tu sais, quand tu regardes les citations, quelle citation est de quel jour ?
Posté : 29 mars 2006, 11:57
par Hermès
Sur ton serveur, tu génères un petit fichier xml contenant la date du jour et l'identifiant de la citation.
Avant de balancer ta requête pour récupérer ta citation, tu regardes ce fichier xml et tu compares la date signalée avec la date du jour.
Si c'est la même : tu fais un select sur ta table de citation avec l'ID du fichier XML (voir tu peux même stocker dans le XML la citation, ça t'évite de faire la requête).
Si c'est pas la même, tu changes la date dans le fichier XML pour mettre la date du jour, tu fais ton select pour avoir une citation aléatoire et tu enregistres son ID dans ton fichier xml.
Edit : et pour éviter qu'une citation se répète avant que toutes les autres ne soient passées, je pense que l'idéal est de mettre un champ booleen (par exemple "lue") dans la table.
Quand on choisi au hasard une citation, on met une clause "lue=false" pour n'avoir que celles qui n'ont jamais été lues et on met le champ "lue" à vrai pour celle qu'on choisi.
Si le résultat de la requête est vide, alors on met à jour la table en remettant le champ "lue" à faux pour toutes les citations.
Posté : 29 mars 2006, 12:03
par Stegue
Je sui pas sûr de bien comprendre ta question Zeus.
Mais peu importe si c'est la citation a ou b qui s'affiche aujourd'hui (je n'ai pas de préférence). je veux "simplement" que ce soit l'autre demain.
Même si la fonction au hasard du code bug un peu, c'est à dire si elle répète une citation avant de les avoir toutes passées, c'est pas bien grave.
Mais, à te lire, j'ai l'impression qu'il faut que j"associe chaque citation à un jour du mois.