|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2010 Messages : 2 ![]() |
salut,
je suis en train de développer un script PHP où je tire au sort les entrées d'une table grâce à une requête "ORDER BY RAND()". la particularité que j'aimerais ajouter serait d'empêcher la même IP de voir deux fois la même entrée. j'ai donc créé une table log dans laquelle je rentre les IPs et les ids des éléments vus. et à chaque fois qu'un élément est tiré au sort, je scanne la table log, et si l'ip du visiteur a déjà vu cet élément dans la table log, je relance un tirage. mon problème c'est que lorsque l'IP a vu tous les éléments, mon script part dans une boucle infinie et tire au sort des éléments en espérant en trouver un qui n'a pas été vu. j'avais pensé à mettre une variable $limite, qui bloquerait la recherche après 10 tours par exemple, et qui dirait "il n'existe plus aucun élément non-vu". le problème c'est que mathématiquement la fonction aléatoire peut très bien tirer au sort 10 éléments déjà vus alors qu'il reste des éléments non-vus à voir... Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Fait ton rand() uniquement sur les élements que tu veux
Code sql :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2010 Messages : 2 ![]() |
solution très élégante que je ne connaissais pas !
merci beaucoup
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com