par
Hermès » 29 mars 2006, 11:57
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.
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.