Affichage aléatoire d'un des enregistrements du résultat d'une requète - PHP - Programmation
Marsh Posté le 30-10-2004 à 12:47:27
Déjà, le SELECT * c'est mal.
Sinon:
SELECT tonchamp FROM tatable ORDER BY RAND() LIMIT 1
Marsh Posté le 30-10-2004 à 12:50:32
Merci pour vos réponses.
Le select * c'est mal, je suis au courant, c'était juste pour l'exemple.
Juste pour mieux comprendre, le RAND() génère un nombre aléatoire, mais que va faire MySQL exactement ? Il va trier par clé primaire aléatoirement et en prendre 1 (limit 1), ou c'est autre chose ?
Marsh Posté le 30-10-2004 à 12:54:03
rand génère bien un nombre aléatoire et attribut celui-ci à chaque row du resultset. Ensuite, c'est avec ce nombre que tes rows sont ordonées. pour le limit, t'as deviné juste.
Marsh Posté le 30-10-2004 à 12:43:21
Bonjour,
J'aimerais effectué une requète qui, d'une façon aléatoire ne me renvoi qu'un seul des résultat d'elle même.
Je ne sais pas si c'est possible de le faire en MySQL, autrement, comment faudrait-il procéder en PHP ?
Exemple:
SELECT * FROM matable
Renvoi 5 résultat:
Je voudrais choisir l'un de ces résultats uniquement.
Pour le PHP je pense à quelque chose comme çela:
$rst=mysql_query("select * from matable",$connexion);
$nb_rst=mysql_num_rows($rst);
$nb_sorti=rand(1,$nb_rst);
for($i=1;$i<=$nb_sorti;$i++)
{
$ma_table=mysql_fetch_object($rst);
}
Je suppose qu'il y a mieux à faire, mais je ne vois pas comment.
Merci d'avance.