[Résolu] Variable Aléatoire

Eléphanteau du PHP | 33 Messages

31 oct. 2005, 10:37

bonjour

Voila j'ai un problème (et oui encors heureusement que vous êtes là :wink: )

Selon un critère de recherche je relève toute les Id par ce ptit bout de code
while($donne=mysql_fetch_array($requetnombre))
			{
			$Nombre=$donne['Id'];
			}
Mais voilà mon problème, je ne trouve pas de fonction qui me permaitrai de prendre une valeur au hasard de la variable $Nombre

J'èspère que je me suis bien expliqué, en tout cas merci d'avance

PS: J'ai trouvé les fontions rand() ou meme mt_rand(a,x) mais je voudrais un que la fonction me sorte un résultats entre toutes les valeurs de $Nombre
Modifié en dernier par gyzmo45 le 31 oct. 2005, 12:27, modifié 3 fois.

Eléphant du PHP | 153 Messages

31 oct. 2005, 10:54

Tu pourrais construire un tableau $nombre
$nombre=array();

while($donne=mysql_fetch_array($requetnombre)) 
            { 
            $Nombre[]=$donne['Id']; 
            } 


Et apres faire un random sur la taille du tableau
$indice=rand(0,sizeof($nombre));
$alea=$nombre($indice);

Si j'ai bien compris ce que tu veux faire ca devrait marcher

Eléphanteau du PHP | 33 Messages

31 oct. 2005, 11:38

Bien pensé!!

C'est exactment ce qu'il me faut :P

Je ne connaisai pas la fonction sizeof

Enfin voilà, Merci beaucoup je m'envais appliquer ça :lol:

Eléphant du PHP | 153 Messages

31 oct. 2005, 11:57

Tu peux mettre la balise résolu?
c'est pas à moi de te le dire mais bon

Eléphanteau du PHP | 33 Messages

31 oct. 2005, 12:07

En faite non sa ne va pas, je me suis réjouis trop vite :(

Car la valeur de
$donne['Id']
peut ête 3 ensuite 4 et la dernière 20

Par conclusion j'aurais dans le tableau
$Nombre
les valeurs suivante
3
4
20
Pour finir lorsque je fais
$IDaleatoir=rand($Nombre[0],sizeof($Nombre));
la variable
$IDaleatoir
peut avoir des valeurs différente de 3,4 ou 20

J'aimerai tiré au sort une de ses trois valeurs tout en restant opérationnel si une nouvelle valeur est enregistrer

Voilà sur quoi je me casse la tête depuis hier soir et toute la mitné

Donc si quelqu'un pouvais m'aidé :wink:

Merci encors

Eléphanteau du PHP | 33 Messages

31 oct. 2005, 12:08

Tu peux mettre la balise résolu?
c'est pas à moi de te le dire mais bon
Non pas encors j'ai encors un problème :-k

Eléphant du PHP | 153 Messages

31 oct. 2005, 12:20

oui tu auras dans ton tableau des valeurs qui ne se suivent pas forcément 3, 5 , 89 , 112

Mais si tu insères à chaque fois dans ton tableau
$nombre[]=$donne['Id'];
Ton tableau sera celui la
0=>3
1=>5
2=>89
3=>112

donc tu peux faire un random entre 0 et 3 pour choper un indice au hasard et ensuite récupérer la valeur correspondante à cet indice aléatoire.
//génération aléatoire d'un indice
$indicealea=rand(0,sizeof($nombre));

//recuperation valeur correspondante
$valeuralea=$nombre($indicealea);


Eléphant du PHP | 353 Messages

31 oct. 2005, 12:23

Tu modifies simplement ta requête en ajoutant "order by rand".

http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html

Eléphanteau du PHP | 33 Messages

31 oct. 2005, 12:25

DSL j'avais mal compris la fonction sizeof
:tir2: voila se que je m'érite :lol:

Merci maintenant je vais me débrouiller on apprend mieu comme ça \:D/

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

31 oct. 2005, 12:26

utilise SQL pour tirer au hazard un id.

Code : Tout sélectionner

SELECT id from ta_table ORDER BY RAND() LIMIT 1
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 33 Messages

31 oct. 2005, 12:28

C'est une idée intéréssante et surment plus simple

Je vais étudier ça merci beaucoup :D

Eléphant du PHP | 153 Messages

31 oct. 2005, 12:35

Désolé je ne connaissais pas cette fonction.
Au moins maintenant tu connais sizeof()...

A+

Eléphanteau du PHP | 33 Messages

31 oct. 2005, 12:44

utilise SQL pour tirer au hazard un id.

Code : Tout sélectionner

SELECT id from ta_table ORDER BY RAND() LIMIT 1
Je vien d'utiliser cette méthod et ça marche très bien
Désolé je ne connaissais pas cette fonction.
Au moins maintenant tu connais sizeof()...
Oui c'est vrai, de toute façon j'en apprend tous les jours avec php

Merci à tous