Comme déjà dit cela dépend de la façon dont tu stock le message retenue.
Perso, vue que cette donnée est relativement statique je ne ferais pas un select en base à chaque affichage.
tu peux stocker cela dans un fichier plat, quitte à le structurer un peu
et donc un fichier php relativement basique
<?php
try {
// on récupère les données actuelles;
$data = unserialize(file_get_contents('lefichierquivabien'));
$pdo = new PDO('le server', 'user', 'password');
$sql = 'select * from tata where id <> ' . $pdo->quote($data->id, PDO::PARAM_INT) . ' order by rand limit 1';
$r = $pdo->query($sql);
if ($r === false) {
$err = $pdo->errorInfo();
throw new Exception($err[2]);
} else {
$data = $r->fetch(PDO::FETCH_OBJ);
file_put_contents('lefichierquivabien', serialize($data));
$r->closeCursor();
}
} catch (Exception $e) {
echo 'boulette : ', $e->getMessage();
echo '<br />Trace : ', $e->getTraceAsString();
}
Pour récupérer les données c'est la ligne 4 de mon code et un exemple d'utilisation ligne 6 (c'est un objet parce que j'ai utilisé FETCH_OBJ dans la requête).
ensuite pour ce qui est de l'actualisation, c'est aussi simple, tu ajoute une tache cron qui execute la commande suivante
php -f lefichierquicontientlecodequejaimiscidessus.php
info sur la crontab
http://fr.wikipedia.org/wiki/Crontab il y a des exemples correspondant à ce que tu cherche afin de paramétrer ta cron tab
autre solution, qui utilise plus le SGBD : dans la tabel tu ajoute une colonne permettant d'indiqué quel est le message actif.
par exemple
CREATE TABLE tata (
id
categorie
titre
message
actif int(1) check(actif in(0,1)) not null default 0
)
lorsque tu as choisis le message tu passe la colonne actif à 1 et toutes les autres a zéro.
pour cela une version bourrin tu garde l'id de la nouvelle ligne sélectionnée, un update sur toute la table (update tata set actif=0) et ensuite la mise à 1 du champ actif pour la ligne sélectionnée.
Ensuite pour afficher le message sélectionné un simple select * from tata where actif = 1.
La première solution me semble la plus performante, a tester en charge.
@+
Il en faut peu pour être heureux ......