[PHP] restrictions de la fonction Rand
12 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
-

yannouk - WRInaute passionné

- Messages: 2142
- Inscription: 11 Oct 2003
[PHP] restrictions de la fonction Rand
en gros, je vais essayer de mettre des liens textes tradedoubler, cibleclick etc, en ciblant un max
pour me facilite la vie et mieux jongler avec les liens, j'ai cree une table sql, avec dans chaque rangée un ID et un champs CODE qui contient le code tradedoubler. Ensuite je remplis la table des differents codes que je veux afficher, et je fais appel a eux sur le site.
c'est la que ca coince.
je vais mettre par exemple 10 enregistrements, et, a l'aide de la fonction RAND, je n'en appelle que 3 (avec une boucle for)
la galere, c'est que les 2 memes pubs peuvent sortir! je voudrais ajouter une restriction qui dit que si l'enregistrement "n" est tiré au sort par la fonction rand, il ne doit pas l'etre une deuxiemen fois
quelqun a une idée?
A+!
.
pour me facilite la vie et mieux jongler avec les liens, j'ai cree une table sql, avec dans chaque rangée un ID et un champs CODE qui contient le code tradedoubler. Ensuite je remplis la table des differents codes que je veux afficher, et je fais appel a eux sur le site.
c'est la que ca coince.
je vais mettre par exemple 10 enregistrements, et, a l'aide de la fonction RAND, je n'en appelle que 3 (avec une boucle for)
la galere, c'est que les 2 memes pubs peuvent sortir! je voudrais ajouter une restriction qui dit que si l'enregistrement "n" est tiré au sort par la fonction rand, il ne doit pas l'etre une deuxiemen fois
quelqun a une idée?
A+!
- manitou
- WRInaute discret

- Messages: 70
- Inscription: 6 Avr 2004
J'ai eu le même idée de programme mais je l'ai jamais fini (enfin c'était un peu plus complet).
Pour te répondre la seule solution c'est une boucle while dans laquelle tu examine les choix déjà pris : attention si tu n'as que 2 bannières....ça tourne à l'infini !!
Pour te répondre la seule solution c'est une boucle while dans laquelle tu examine les choix déjà pris : attention si tu n'as que 2 bannières....ça tourne à l'infini !!
- StuWee
- WRInaute discret

- Messages: 101
- Inscription: 26 Juin 2003
ke je comprenne bien, tu récupère dans la base 10 enregistrement, et ensuite avec php, tu veut en tirer 3 au sort ?
pas besoin de PHP, ni de while ni de truc partout
une seule requette MySql, et tu aura tes 3 enregistrements au hazard, sans doublon :
SELECT * FROM table ORDER BY RAND() LIMIT 3
pas besoin de PHP, ni de while ni de truc partout
une seule requette MySql, et tu aura tes 3 enregistrements au hazard, sans doublon :
SELECT * FROM table ORDER BY RAND() LIMIT 3
-

yannouk - WRInaute passionné

- Messages: 2142
- Inscription: 11 Oct 2003
alors: ca fonctionne, mais, decidement, je trouve que le random n'est pas "logique"...trop souvent les memes repetitions pour pouvoir etre qu'une coincidence!
je sais qu'il y a une fonction srand ou un truc comme ca, pour initialiser la fonction hasard et qu'elle marche vraiment? mais comment l'utiliser dans une requete sql?
je sais qu'il y a une fonction srand ou un truc comme ca, pour initialiser la fonction hasard et qu'elle marche vraiment? mais comment l'utiliser dans une requete sql?
-

Bobez - WRInaute impliqué

- Messages: 716
- Inscription: 20 Mai 2004
Bizarre en effet, car rien qu'en choisissant 3 éléments parmi 10, y'a déjà 120 combinaisons...
Perso, la fonction rand() de php a tjs fonctionné correctement chez moi, par contre je l'ai jamais utilisé dans une requête. Cela dit, il me semble me souvenir avoir vu une astuce pour contrer le phénomène que tu décris, mais je ne retrouve pas
Perso, la fonction rand() de php a tjs fonctionné correctement chez moi, par contre je l'ai jamais utilisé dans une requête. Cela dit, il me semble me souvenir avoir vu une astuce pour contrer le phénomène que tu décris, mais je ne retrouve pas
-

mahefarivony - WRInaute accro

- Messages: 11405
- Inscription: 14 Oct 2002
Bobez a écrit:Perso, la fonction rand() de php
de php ou de mysql ?
- StuWee
- WRInaute discret

- Messages: 101
- Inscription: 26 Juin 2003
doc MySql a écrit: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 de nombres aléatoires parfait, mais reste une manière rapide de produire des nombres aléatoires ad hoc portables selon les différentes plate-formes pour une même version de MySQL.
autrement, tu peut toujour select tes 10 enregistrements comme avant
mais plutot ke ton system de boucle, utilise array_rand()
$result = array_rand($input, 3);
-

Bobez - WRInaute impliqué

- Messages: 716
- Inscription: 20 Mai 2004
Ça y est, j'ai retrouvé ce dont je parlais, peut-être que cela résoudra ton problème (pas testé) :
- Code: Tout sélectionner
("SELECT * FROM table ORDER BY rand(" . time() . " * " . time() . ") LIMIT 3");
12 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- [PHP] question sur fonction rand
- [PHP niveau facile] $agents[rand(0, count($agents))] !!!!
- Fonction PHP qui faut editer dans php.ini
- Restrictions extension .be?
- Restrictions avec les tld locale (.fr .es )
- prob avec les restrictions aux fichiers
- ajouter un rand
- function rand()
- fonction en PHP
- fonction php
- Article sur le fichier .htaccess - 11-01-2003
- Mon site est-il dans la SandBox ? Guide pratique... - 12-01-2006
- Gérer l'entête HTTP en PHP - 04-08-2008
- Référencer un site multilingue - 24-04-2004
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- Google stimule la créativité avec la Google API - 04-11-2002
- Le PHP et le référencement - 28-07-2003
- Les sites les plus visibles pour le mot Google - 27-11-2002
Consultez la description détaillée des produits ou services de Google suivants : Google Related Links
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
