Fonction PHP random

  • Auteur de la discussion Auteur de la discussion sim100
  • Date de début Date de début
WRInaute passionné
Bonjour
Je vousdrais par exemple faire un choix au hasar d'un nombre entre 1 et $i
$i peut être 10 ou 20, peut importe.

J'ai lu avant qu'il y avait deux fonction possible pour choisir un nombre aléatoire entre deux valeur en PHP.
Je ne me souviens plus des fonctions.

Quelle est à votre avis la meilleur méthode pour le faire?

Merci de votre aide.
 
WRInaute accro
tu met tes 2 valeurs dans un tableaux à 2 valeurs, et tu fais un $tab[rand(0,1)] (marche aussi pour 3, 4, 5 valeurs, etc...)
 
WRInaute passionné
comprend pas

Je ne comprends pas.
Je mets deux valeurs dans un tableau tab, par exemple 1 et 15
Puis je fais un $tab[rand(0,1)] et il me sort un nombre entre 1 et 15 ?
 
WRInaute accro
non, il te sort 1 ou 15. c est pas ce que tu veux ? si tu veux entre 1 et 15, alors tout simplement rand(1,15)
 
WRInaute passionné
questions simples

Il n'y a pas de questions simples, il n'y a que des bons et des moins bons.
Et moi je suis nul :cry:
 
WRInaute passionné
flute

Flute je n'arrive pas à faire ce que je veux.

Plus simplement, y a t'il un moyen de selectionner une ligne au hasar dans une table d'une base de donnée

du genre

Code:
$query="SELECT * FROM wpa_cat AU HASAR";
$res_country=@mysql_query($query,$db);

:D

Est-ce possible?
 
WRInaute passionné
non

En fait le
LIMIT $var
veut dire, si $var=10, qu'il va m'en prendre 10 dans ma base.

Moi je veux qu'il me prenne une ligne et au hasar

Merci pour l'aide
 
WRInaute passionné
merci

Merci tom_pascal et ekiwi

Donc, cela veut dire quoi exactement?

SELECT * FROM wpa_cat limit $var, 1

Si $var = 15
Cela veut dire qu'il selectionne 15 lignes et le 1 à la fin veut dire qu'il en choisi une des 15?

Excusez moi, je comprends vite mais il faut qu'on m'explique longtemps car je ne vois pas trop le truc, et je voudrais être sur de ce que je fais

Merci pour tout
 
Nouveau WRInaute
Lao tse a dit : 'Si tu donnes un poisson a un homme, tu le nourris un jour...Si tu lui apprend a pecher, tu le nourris pour la vie !'

J'vai essayer de repondre a ta question dans cet optique. Tu veut savoir ce que fait LIMIT en mysql....google.com -- " mysql commands limit "

les premiers resultats sont alors :

Basic MySQL Commands - [ Traduire cette page ]

Using MySQL within a mysql shell - [ Traduire cette page ]

Overcoming MySQL's 4GB Limit (by Jeremy Zawodny) -[ Traduire cette page ]

hum le premier semble parler des instructions de base, alors essayons , on ouvre alors ce lien.

WOW yen a du texte....bon allez F3 limit pour chercher directement notre objectif..... on arrive alors a :


The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments. If two arguments are given, the first specifies the offset of the first row to return, the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1).

et un peu plus loin :
mysql> select * from table LIMIT 5,10; # Retrieve rows 6-15

J'espere avoir repondu a ta question, tout en t'ayant appris a t'en sortir tout seul ;) ( c'est souvent + efficace)
 
WRInaute impliqué
Si c'est pour récupérer un enregistrement au hasard, tu as deux solutions:

- tu as un id numérique dans ta base et tous les id se suivent sans trou:
Code:
$num = rand(0, $max);
SELECT field1, field2, ... FROM table WHERE id=$num

- soit
Code:
SELECT field1, field2, ... FROM table ORDER BY RAND() LIMIT 1;
 
WRInaute passionné
Super

Merci beaucoup shrom

C'est exactement ce que je cherchais, la méthode la plus simple en une ligne, super efficace.

J'avais trouvé des moyens sur le net mais c'était des solution plus compliqués mais je pensais bien qu'il devait exister un truc plus simple.

Merci encore
 
WRInaute accro
il me semblait que c etait SELECT * FROM wpa_cat limit $var, $var, apparemment c est SELECT * FROM wpa_cat limit $var, 1 , dans tous les cas, cela veut dire que ca commences à l enregistrement $var, et que ca en prend un, donc c est bien ce que tu cherchai à faire. car l histoire de "xhere id=$i" ne peut pas fonctionner tout le temps (imagine que tu supprimes l enregistrement eyant pour id celui là...) je te conseille donc de revenir sur notre méthode ^^
 
Discussions similaires
Haut