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 :

Tirage au sort selon pourcentage de chance [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut Tirage au sort selon pourcentage de chance
    Bonjour à tous, voici ma question :

    Je dispose de la table "cadeaux" qui se présente sous cette forme (champs avec exemple de valeurs sur 4 lignes) :

    id_cadeau = 1
    nom_cadeau = canard
    pourcentage = 25


    id_cadeau = 2
    nom_cadeau = chat
    pourcentage = 25

    id_cadeau = 3
    nom_cadeau = chien
    pourcentage = 50

    Ce que je cherche à faire, ensuite, dans une page PHP, c'est d'extraire ces trois lignes de la table et de "tirer au sort" une seule valeur (Peut être par ORDER BY rand() LIMIT 1 ? ) en prenant en compte le pourcentage de chance.

    QQn1 peut m'aider ?

    Merci d'avance !

    C'est à dire que dans mon exemple, j'aurai largement plus souvent de chance de tomber sur le cadeau n°3.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT RAND()*pourcentage as tirage,id_cadeau FROM table ORDER BY tirage DESC LIMIT 1
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Houaaa génial !! Merci ça fonctionne parfaitement

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    J'aimerais revenir sur ce sujet SVP pour comprendre un peu

    Qqn1 pourrait m'expliquer comment ça fonctionne pour que je puisse réutiliser ce procéder par la suite ?

    De plus, est-il possible d'utiliser ce code dans un UPDATE ? Si oui comment ? car si je fais :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    UPDATE table2 SET id_cadeau = (SELECT RAND()*pourcentage AS tirage,id_cadeau FROM table1 ORDER BY tirage DESC LIMIT 1)

    Comment faire pour que le SELECT me sorte uniquement id_cadeau ?

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE table2 SET id_cadeau = (SELECT id_cadeau FROM table1 ORDER BY RAND()*pourcentage DESC LIMIT 1)
    on multiplie on nombre au hasard par ton pourcentage qui sert de poids.
    il y a quand meme une arnaque semantique : le pourcentage n'en est pas un ; il ne fait qu'augmenter la probabilité.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Je comprend mieux, merci beaucoup ça fonctionne comem je le souhaite !

    Du coup si je comprend bien, je n'ai pas à m'arranger pour que les valeurs soient des pourcentages. Je peux utiliser 0.2, 1, ou 10 ou bien encore 2 000. C'est un coefficient.

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

Discussions similaires

  1. Random selon un % de chances
    Par Norin dans le forum Langage
    Réponses: 3
    Dernier message: 07/05/2007, 16h05
  2. Tirage au sort
    Par Titeuf82 dans le forum Ada
    Réponses: 5
    Dernier message: 17/04/2007, 11h05
  3. Tirage au sort d'un mot
    Par Dav-D dans le forum C
    Réponses: 39
    Dernier message: 04/01/2007, 17h04
  4. [VBA-E] Tirage au sort avec probabilité
    Par clarisse dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/05/2006, 11h01
  5. Tirage au sort
    Par clampin dans le forum Langage
    Réponses: 2
    Dernier message: 19/12/2005, 16h38

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