PHP - Plusieurs champs dans un alea() Mysql

Fermé
MOH show - 17 juin 2009 à 22:50
Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009 - 17 juin 2009 à 23:37
Bonjour,
je voudrais melanger 3 champs dans un rand().

J'ai 3 champs dans le Mysql : site, site2 et site3 (pour ceux qui on plusieurs sites)

Voila je sais pas comment assembler plusieur champs dans un rand().

Voici mon script.



<?php
$query = mysql_query("select * from membres order by rand() limit 1"); 
$rep = mysql_fetch_array($query); {  
?>

<table align="center" style="text-align:center;"  width="250" height="172"  border="0px dashed #000000">
<tr>
<td>
<big><u>Site au hazard :</u></big>
</td>
</tr>
<tr>
<td width="202">

<a href="http://<?php echo $rep['site'] ?>" target="_blank">
<img src="http://images.websnapr.com/?size=s&url=http://<?php echo $rep['site'] ?>" border="1" alt="<?php echo $rep['pseudo'] ?>" />
</a>

</td>
</tr>
<tr>
<td align="center" valign="center">

<small>http://<?php echo $rep['site'] ?> </small>
<br> <?php echo $rep['pseudo'] ?>

</td>
</tr>
</table>
<?php } ?>

1 réponse

Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009 37
17 juin 2009 à 23:37
RAND(), RAND(N)

Retourne un nombre aléatoire à virgule flottante compris dans l'intervalle 0 - 1.0. Si l'argument entier N est spécifié, il est utilisé comme initialisation du générateur de nombres aléatoires.

mysql> SELECT RAND();
        -> 0.9233482386203
mysql> SELECT RAND(20);
        -> 0.15888261251047
mysql> SELECT RAND(20);
        -> 0.15888261251047
mysql> SELECT RAND();
        -> 0.63553050033332
mysql> SELECT RAND();
        -> 0.70100469486881

Vous ne pouvez pas utiliser une colonne de valeur RAND() dans une clause ORDER BY, parce que ORDER BY va évaluer la colonne plusieurs fois. Dans la version 3.23 de MySQL, vous pouvez, tout de même, faire ceci :

mysql> SELECT * FROM tbl_name ORDER BY RAND();

Cette syntaxe est très pratique pour faire une sélection aléatoire de lignes :

mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d
    -> ORDER BY RAND() LIMIT 1000;

Notez que la fonction RAND() dans une clause WHERE sera réévaluée à chaque fois que WHERE sera exécuté.

RAND() n'est pas un générateur parfait de nombres aléatoires, mais reste une manière rapide de produire des nombres aléatoires portables selon les différentes plates-formes pour une même version de MySQL.


Source : http://dev.mysql.com/doc/refman/5.0/fr/mathematical-functions.html

Vérifie donc ta version de MySQL :)
0