Messieurs,
J'utilise le critère {par hasard} pour tirer au sort une brève. Au début,
comme un autre internaute au début de ce mois, j'ai cru que cette fonction ne
marchait pas. Après examen du code de SPIP et du SQL généré, il apparaît
plutôt qu'elle ne remplit pas bien son office dans certains cas limite,
notamment lorsque les éléments sont proches et peu nombreux.
Je propose de remplacer la ligne 492 de inc-calcul-squel.php3 (version 1.7.2)
de la manière suivante :
< $req_select = "MOD($table.$id_objet * UNIX_TIMESTAMP(), 32767) &
UNIX_TIMESTAMP() AS alea";
$req_select = "COS($table.$id_objet * UNIX_TIMESTAMP()) * 32767 AS alea";
On pourra modifier le paramètre de COS pour obtenir des effets différents,
mais dans l'idée, étant données les contraintes du problème, COS me paraît une
meilleure fonction que le "et logique bit à bit" (dans les conditions du
problème, la fonction MOD(x*a) peut être considéré comme une fonction
strictement croissante qui n'ajoute donc pas de "hasard").
Cordialement,
Francis PALLINI
ECILIA - Ingénieur INSA Lyon
Tél : 04.78.68.46.23
Fax : 04.37.43.69.01