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

Langage PHP Discussion :

[Tableaux] Définition de 3 chiffres aléatoires différents


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 8
    Points
    8
    Par défaut [Tableaux] Définition de 3 chiffres aléatoires différents
    Bonjour à tous,

    Je travaille en se moment sur le développement d'une application e-learning.
    Afin d'attribuer des valeurs différentes aux etudiants j'utilise la fonction Randum pour générer automatiquement 3 ou 4 chiffres me permettant de définir les ID de la table Question a utiliser.

    Les chiffres sont générés sans problèmes mais j'ai constaté un problème de doublon,


    voici le code



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
    /*Définition aléatoire du jeux de donné proposé à l'étudiant pour la question 2*/	  
         if(! isset($_SESSION['IDa']))
    	{
     
    		$_SESSION['IDa']=rand(1,28);
     
    	}
     
     
     
        if(! isset($_SESSION['IDb']))
    	{
     
    		$_SESSION['IDb']=rand(1,28);
    		while($_SESSION['IDb']==$_SESSION['IDa'])
    		   {
    		   	$_SESSION['IDb']=rand(1,28);
    		  }
     
    	}
     
       if(! isset($_SESSION['IDc']))
    	{
    		$_SESSION["IDc"]=rand(1,28);
    	    while(($_SESSION['IDc']==$_SESSION['IDa'])&& ($_SESSION['IDc']==$_SESSION['IDa']))
    		   {
    		   	$_SESSION['IDc']=rand(1,28);
    		   }
     
     
    	}
     
     
     
    /*declaration des variables de la session reprenant les valeurs attribuées a l'étudiant*/
     
    	$ID1 =  $_SESSION['IDa'] ;
    	$ID2 =  $_SESSION['IDb'] ;
    	$ID3 =  $_SESSION['IDc'] ;

    Merci de me donner quelques pistes concernant ce problème de doublons.

    Cordialement


    Arnaud

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Je te propose quelque chose d'un peu plus joli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $nrand = 3;
    $aRand = array();
     
    for ($i=0; $i < $nrand; $i++) {
    	do { $rand = rand(1,28); }
    	while (in_array($rand, $aRand));
    	$aRand[] = $rand;
    }
     
    $_SESSION['IDa'] = $aRand[0];
    $_SESSION['IDb'] = $aRand[1];
    $_SESSION['IDc'] = $aRand[2];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Merci pour votre aide
    je constate cependant un probleme, lorsque l'on "rafraichit par la touche F5" l'exercice une nouvelle valeur apparait.

    Le but de ma fonction Random et de determiner 3 chiffres différents pour une session donnée.

    Ces chiffres sont ensuite mobilisés pour intéroger une base de donnée.

    Je m'en sert donc pour attribuer 3 ID différent par étudiant, ils sont stockés
    pour permettre de corriger les valeurs fournies par l'étudiant.


    Merci pour votre aide, je travaille dessus

    Cordialement
    Arnaud

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il suffit de faire un isset() comme tu l'avais fait auparavant.
    Au passage il est plus pratique d'utiliser un tableau que des variables IDa, IDb, IDc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if (!isset($_SESSION['ID'])) {
    $nrand = 3;
    $aRand = array();
     
    for ($i=0; $i < $nrand; $i++) {
    	do { $rand = rand(1,28); }
    	while (in_array($rand, $aRand));
    	$aRand[] = $rand;
    }
    $_SESSION['ID'][1] = $aRand[0];
    $_SESSION['ID'][2] = $aRand[1];
    $_SESSION['ID'][3] = $aRand[2];
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 263
    Points : 15 573
    Points
    15 573
    Par défaut
    pour la génération des nombres regarde là :
    http://www.developpez.net/forums/m4070338-5/

    Citation Envoyé par deshogues Voir le message
    je constate cependant un probleme, lorsque l'on "rafraichit par la touche F5" l'exercice une nouvelle valeur apparait.

    Le but de ma fonction Random et de determiner 3 chiffres différents pour une session donnée.
    pour ça tu peux stocker les chiffres dans une session ou une base de données

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Ta Bon
    Merci pour votre aide.

    Mon script est desormais capable de generer une verssion differente d'exercice pour chaque etudiant..

    Merci de votre aide.

    Bon Weekend

    Arnaud

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 21/11/2008, 15h52
  2. Tirer 3 nombres aléatoires différents
    Par uado dans le forum ASP
    Réponses: 3
    Dernier message: 23/05/2006, 10h30
  3. Choisir un chiffre aléatoire parmi une liste
    Par djsbens dans le forum Général Java
    Réponses: 2
    Dernier message: 08/03/2006, 18h19
  4. Chiffre aléatoire
    Par shamanlinks dans le forum Assembleur
    Réponses: 8
    Dernier message: 14/12/2005, 00h50
  5. Génération de n nombres aléatoires différents
    Par progfou dans le forum Probabilités
    Réponses: 3
    Dernier message: 13/12/2005, 18h29

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