IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Valeur choisie (presque) au hasard [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Par défaut Valeur choisie (presque) au hasard
    Bonjour,

    J'avance tout doucement dans mon apprentissage de PHP et MySQL et j'aurais aimé vos avis sur la manière de traiter la problématique suivante.

    J'ai une table contenant une colonne de prénoms et une colonne de valeurs.
    Je souhaiterais faire une sorte de tirage au sort afin de récupérer un prénom au hasard dans ma colonne.... mais le nombre de chances que ce prénom sorte soit en fonction de la valeur de la deuxième colonne.

    Exemple pour être plus clair :
    Prénom / Valeur
    Prénom1 / 1
    Prénom2 / 2
    Prénom3 / 2
    Prénom4 / 3

    En gros, Prénom1 a plus de chance de sortir au tirage que Prénom2 3 ou 4.
    Prénom 2 ou 3 a plus de chance de sortir au tirage que Prénom4.

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Regardes ce fil. La réponse est dedans

  3. #3
    Membre confirmé Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Par défaut
    Bonjour,

    Merci pour ce lien. Effectivement, c'est exactement la même demande que moi.
    Je n'ai apparemment pas utilisé les bons mots clés pour chercher sur le forum avant, ou je n'ai pas cherché sur le bon forum aussi....

    Bonjour,
    si fréquence pour toi signifie donner plus de chance, ce qui pour de l'aléatoire est surprenant, une solution serait de mettre les ID dans un tableau avec autant d'entrée que la fréquence que tu souhaites
    en résumé
    Citation:
    1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,..etc...
    Néanmoins, j'ai un doute :
    étant donné que j'aurais plusieurs milliers de lignes dans ma table, l'utilisation d'un tableau dans ce cas n'est-il pas limité ?
    Un tableau avec 100 000 entrées par exemple serait peut-être un peu trop (performance, mémoire, .... ) ?

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Si tu as peur de mettre à genoux ton serveur, tu peux tout à fait procéder autrement.
    Tu créés une table t_participant dans laquelle tu mets autant de noms (et/ou copies de noms) que tu veux en fonction de ta valeur de fréquence et ensuite il ne te reste plus qu'à faire :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, nom FROM t_participant ORDER BY RAND() LIMIT 1;
    Avec ça le serveur mysql te décharge de toute la lourdeur, de ton côté tu dois bien évidemment suivre précisément en PHP les entrées sorties de ta table t_participant.
    Et normalement le tour est joué

  5. #5
    Membre confirmé Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Par défaut
    Merci pour la piste.
    Du coup, j'ai un peu mélangé les solutions pour trouver ce qui me convenait.

    Comme dans la première réponse :
    1 - J'ai ajouté une colonne fréquence à ma table des prénoms
    2 - J'ai généré un tableau contenant l'ensemble des fréquences ([1,2,2,3,3,3 ... ])

    A ma manière :
    3 - J'ai tiré au sort la fréquence dans le tableau
    4 - J'ai tiré au hasard dans ma table de prénoms en faisant une pré-sélection sur le fréquence déterminée avant.

    Voilà.
    Merci pour l'aide apportée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SELECT : garder la valeur choisie
    Par ocane59 dans le forum Langage
    Réponses: 1
    Dernier message: 14/09/2007, 16h00
  2. Récupérer la valeur choisie ds une liste
    Par taroudant dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 08/08/2006, 10h53
  3. Afficher la valeur choisie d'une liste déroulante dans une textbox
    Par bouchette63 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/06/2006, 14h26
  4. récupérer toutes les valeurs choisies ds un select multiple
    Par toome dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/10/2005, 13h45
  5. un champ prend une valeur choisie à l ouverture du form
    Par martonpylon12 dans le forum IHM
    Réponses: 16
    Dernier message: 17/12/2004, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo