[PHP] Système de blague du jour
Résolu
crocoscore
Messages postés
176
Statut
Membre
-
moije -
moije -
Bonjour à vous,
Je souhaite créer un système de blague du jour. Le principe serait simple: je trouve 200 blagues mais n'affiche qu'une seul blague par jour.
Pourriez-vous me donner une idée pour que la blague change tout les jours aléatoirement mais n'affiche jamais la même... Merci d'avance, j'attends vos idées avec impatience :)
Je souhaite créer un système de blague du jour. Le principe serait simple: je trouve 200 blagues mais n'affiche qu'une seul blague par jour.
Pourriez-vous me donner une idée pour que la blague change tout les jours aléatoirement mais n'affiche jamais la même... Merci d'avance, j'attends vos idées avec impatience :)
2 réponses
-
Au début de toutes tes pages :
<?php $pdo = new PDO('mysql:host=localhost;dbname=db_test','root',''); $lastUpdateUrl = 'last_update.txt'; $currentIdUrl = 'current_id.txt'; $lastUpdateFile = fopen($lastUpdateUrl,'r+'); $lastUpdateTimestamp = fgets($lastUpdateFile); if($lastUpdateTimestamp < ($_SERVER['REQUEST_TIME'] - (3600 * 24))) { fseek($lastUpdateFile, 0); fputs($lastUpdateFile, $_SERVER['REQUEST_TIME']); $sql = 'SELECT id FROM 'blagues' ORDER BY RAND() LIMIT 0,1'; $req = $pdo->query($sql); $row = $req->fetch(); $id = $row['id']; $currentIdFile = fopen($currentIdUrl, 'r+'); fputs($currentIdFile, $id); fclose($currentIdFile); } fclose($lastUpdateFile); ?>Pense à créer les deux fichier "last_update.txt" et "current_id.txt" et à leur attribuer les droits en écriture. Il ne te reste plus qu'à récupérer l'id dans current_id.txt et de l'utiliser dans ta requête pour récupérer la blague. -
Je ne sais pas si c'est une bonne solution, mais tu peux faire, dans ta base de données une table blague avec les champs :
- idBlague (l'id de la blage, ça me semble évident^^)
- texte (le texte de la blague, tout aussi évident)
- affichee (0 si pas encore affichée, 1 si déjà affichée)
Tous les jours, tu fais une requete pour selectionner une blague que tu affiches, et tu modifies affichee