OVH Cloud OVH Cloud

php e db

1 réponse
Avatar
Andre Ebongue
salut à tous!
voici mon problème j'aimerai realiser une page dont le contenu change tous
les jours.
j'ai donc créer un répoir avec les differentes oages qui m'interesse (des
fables) et une base de donées avec les titres car les fables sont vraimment
longues et je pense que mettre le contenu dans le db rendrait les operations
vraimment longues (ou non?), comment structuter mon echo de manière à ce que
chaque jour la fable change?
j'esère avoir été assez clair.
Merci

1 réponse

Avatar
Bruno Desthuilliers
Andre Ebongue wrote:
salut à tous!
voici mon problème j'aimerai realiser une page dont le contenu change tous
les jours.
j'ai donc créer un répoir avec les differentes oages qui m'interesse (des
fables) et une base de donées avec les titres car les fables sont vraimment
longues et je pense que mettre le contenu dans le db rendrait les operations
vraimment longues (ou non?),


Ca dépend de la façon dont c'est utilisé, mais si tu te retrouve avec 1
accès DB + 1 accès fichier au lieu de simplement 1 accès DB, tu ne gagne
pas grand chose !-)

comment structuter mon echo de manière à ce que
chaque jour la fable change?


C'est un pb d'algo, pas de langage...

je suppose que ta table est comme ça :
fable(*idFable*, titre, url)

ça dépend. En fonction de quoi veux-tu que la fable soit choisie ? Au
hasard ? De façon séquentielle ? Selon la phase de la lune ?-)

Bon, on va voir au moins pour les deux premiers cas :

*1/ séquentiellement :*
Il faut stocker quelque part (disons dans une table de ta base) l'id de
la dernière fable choisie.

Chaque jour, tu récupère la fable d'id suivant, et tu stocke cet id pour
le lendemain.

Si tes id sont strictement consécutifs, c'est très simple. Sinon, il
faut récupérer tous les id supérieurs et prendre le premier de la liste.

Quand tu es arrivé au dernier id, tu recommences la boucle.

Il y a bien sûr le cas de la première mise en route. Le plus simple pour
éviter d'avoir un 'special case' est de stocker manuellement le dernier
id avant de lancer le système.

*2/ au hasard :*
L'idée est d'éviter de repasser la même fable en boucle ou tous les deux
jours.

La solution consiste à stocker les n derniers id dans une queue, avec
une valeur de n suffisante (par exemple n = nombre de fables / 2)

Chaque jour, tu récupères la liste des fables dont l'id n'est pas dans
la queue, et tu en choisis une au hasard dedans (il doit y avoir une
fonction genre rand() ou random() quelque part, cherche dans la doc...)

Tu ajoutes cet id dans la queue - ce qui en supprime la plus ancienne
entrée, qui redevient de ce fait disponible.

Evidémment, il faut stocker cette queue quelque part (au hasard : dans
ta base de données).


j'esère avoir été assez clair.
Moi aussi.


HTH
Bruno