Bonjour,
je suis confronté à un problème que je ne sais résoudre
j'ai créé une fonction qui s'appelle elle même
le but de ce code est de genérer un id et de verifier si il existe dans le base, mais il me renvoie un résultat null et je ne comprend pas pourquoi
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 function verifidcompte($idte) { include('../fun/conngen.php'); $req = "SELECT id_compte FROM compte WHERE id_compte=".$idte; $reslist = mysqli_query($co_base, $req) or die(mysqli_error($co_base)); $nbrows= mysqli_num_rows($reslist); return $nbrows; } function idcompte() { srand((double)microtime()*1000000); $id_nb = rand(1, 99); $dte=date("jmYhis"); $idte=$dte.$id_nb; $idte=rand(1, 9); // j'ai dans la base des id de 1 à 8, en haut c'est mon generateur de code deffinitif, là c'est pour le test $nbrows=verifidcompte($idte); echo "<br/> nbrows ".$nbrows." idte ".$idte; if ($nbrows==0) { echo "<br/>coucou2 ".$idte."<br/>"; return $idte; }else idcompte(); } $result=idcompte(); echo "<br/>idcompte ".$result."---".var_dump($result);
ou
et j'ai le résultat:
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 function idcompte() { srand((double)microtime()*1000000); $id_nb = rand(1, 99); $dte=date("jmYhis"); $idte=$dte.$id_nb; $idte=rand(1, 9); include('../fun/conngen.php'); $req = "SELECT id_compte FROM compte WHERE id_compte=".$idte; $reslist = mysqli_query($co_base, $req) or die(mysqli_error($co_base)); $nbrows= mysqli_num_rows($reslist); echo "<br/> nbrows ".$nbrows." idte ".$idte; if ($nbrows==0) { echo "<br/>coucou2 ".$idte."<br/>"; return $idte; }else idcompte(); } $result=idcompte(); echo "<br/>idcompte ".$result."---".var_dump($result);
idcompte --- //donc je n'arrive pas à récupérer le $idtenbrows 1 idte 8
nbrows 1 idte 7
nbrows 1 idte 5
nbrows 1 idte 2
nbrows 1 idte 7
nbrows 1 idte 2
nbrows 0 idte 9
coucou2 9
E:\wamp64\www\gestion2\ins\test.php:39:null
mais si la valeur de îdte tombe directement à 9 , j'y arrive
idcompte 9---nbrows 0 idte 9
coucou2 9
E:\wamp64\www\gestion2\ins\test.php:39:int 9
là j'en perd mon latin!
Partager