Page 1 sur 1

[Résolu] Variable Aléatoire

Posté : 31 oct. 2005, 10:37
par gyzmo45
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

Posté : 31 oct. 2005, 10:54
par pitt
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

Posté : 31 oct. 2005, 11:38
par gyzmo45
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:

Posté : 31 oct. 2005, 11:57
par pitt
Tu peux mettre la balise résolu?
c'est pas à moi de te le dire mais bon

Posté : 31 oct. 2005, 12:07
par gyzmo45
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

Posté : 31 oct. 2005, 12:08
par gyzmo45
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

Posté : 31 oct. 2005, 12:20
par pitt
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);


rand

Posté : 31 oct. 2005, 12:23
par nicolas
Tu modifies simplement ta requête en ajoutant "order by rand".

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

Posté : 31 oct. 2005, 12:25
par gyzmo45
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/

Posté : 31 oct. 2005, 12:26
par sadeq
utilise SQL pour tirer au hazard un id.

Code : Tout sélectionner

SELECT id from ta_table ORDER BY RAND() LIMIT 1

Posté : 31 oct. 2005, 12:28
par gyzmo45
C'est une idée intéréssante et surment plus simple

Je vais étudier ça merci beaucoup :D

Posté : 31 oct. 2005, 12:35
par pitt
Désolé je ne connaissais pas cette fonction.
Au moins maintenant tu connais sizeof()...

A+

Posté : 31 oct. 2005, 12:44
par gyzmo45
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