[PHP] Système de blague du jour

Résolu
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 :)

2 réponses

  1. 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
    1. Oui, cela peut fonctionner mais le principe du PHP c'est l'automatisation...
    2. Heu... tu fais la requete tous les jours = tu fais un script qui lance la requete tous les jours! ^^
      J'étais pas clair, désolé, ça me semblait évident!
  2. 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.