bonjour à tous !
J'ai un petite problème sur ce que j'essaie de faire avec
rand
Dans le fichier
test.php, je me connect à msql et je récupère les donnés des champs de ma table
les_numero.
Dans cette table
les_numero, j'enregistre les numéros pris au hasard avec
rand.
Ce que j'essaie de faire, est de limiter le nombre maximum que j'ai défini d'un chiffre compris entre 1 et 7.
Voici ma table :
id / a / b / c / d / e / f / g
--------------------------------
a = 7
b = 6
c = 5
d = 4
e = 3
f = 2
g = 1
Par exemple
A ne peux avoir plus de 4 fois le numéro,
B seulement 2 fois le numéro, etc
Donc je crée les variables suivante pour définir le nombre de fois que l'on peux avoir le numéro :
$Nb_A = "4";
$Nb_B = "2";
$Nb_C = "1";
$Nb_D = "3";
$Nb_E = "1";
$Nb_F = "3";
$Nb_G = "1";
Si le numéro pris au hasard par
rand est
7, on vérifie que celui-ci n'est pas déjà rendu à son maximum, donc 4.
Si dans le champ
a de la table
les_numero, il est enregistrer seulement 3, alors on peux obtenir le chiffre 7.
Sinon on passe à un numéro
rand différent.
Qui sera compris entre 1 et 6, étant donné que le 7 est déjà à son maximum.
J'essaie d'expliquer on gros, pas facile lol
Donc voila se que j'ai fait, mais cela ne fonctionne pas comme je voudrait, puisqu'il prend quand même un numéro même si celui-ci est déjà à son max défini dans la variable $Nb_A
<?php
// requete
$recherche= mysql_query("SELECT id, a, b, c, d, e, f, g FROM les_numero");
$donne = mysql_fetch_assoc($recherche);
// variable de maximum
$Nb_A = "4";
$Nb_B = "2";
$Nb_C = "1";
$Nb_D = "3";
$Nb_E = "1";
$Nb_F = "3";
$Nb_G = "1";
// récupération des a, b, c, d, e, f, g dans la table les_numero
$a = $donne['a'];
$b = $donne['b'];
$c = $donne['c'];
$d = $donne['d'];
$e = $donne['e'];
$f = $donne['f'];
$g = $donne['g'];
// premier chiffre au hasard
$numero = rand (1,7);
// condition
if($numero){
if($a == $Nb_A){
$numero = rand (1,6);
}
elseif($b == $Nb_B){
$numero = rand (1,5);
}
elseif($c ==$Nb_C){
$numero = rand (1,4);
}
elseif($d == $Nb_D){
$numero = rand (1,3);
}
elseif($e == $Nb_E){
$numero = rand (1,2);
}
elseif($f == $Nb_F){
$numero = rand (1,1);
}
elseif($g == $Nb_G){
$numero = rand (1,1);
}
else{
$numero = "7";
}
// maintenant si le numéro est ok, alors on l'enregistre dans la table
if($numero == 7){
echo'A';
$db->query("update les_numero set a=a+1");
}
elseif($numero == 6){
echo'B';
$db->query("update les_numero set b=b+1");
}
elseif($numero == 5){
echo'C';
$db->query("update les_numero set c=c+1");
}
elseif($numero == 4){
echo'D';
$db->query("update les_numero set d=d+1");
}
elseif($numero == 3){
echo'E';
$db->query("update les_numero set e=e+1");
}
elseif($numero == 2){
echo'F';
$db->query("update les_numero set f=f+1");
}
elseif($numero == 1){
echo'G';
$db->query("update les_numero set g=g+1");
}
// fin du premier if
}
?>
Merci de votre aide !!!