Bonjour,
Je suis novice en php/mysql. J'ai, grâce à des personnes généreuses sur le forum mysql de ce site, pu effectuer une procédure recursive sur ma table mysql dans le calcul des filleuls, dans un système de parrainage. Mon problème maintenant est d'afficher le résultat du calcul sur la page de profil d'un membre. Je vous présente la table et la procédure recursive. Mon souci est d'afficher le nombre correspondant à l'id au profil approprié. Merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
CREATE TABLE `membres` (
  `id` int(11) NOT NULL,
  `identite` varchar(255) NOT NULL,
  `idparrain` int(11) NOT NULL,
  `telephone` varchar(255) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `province` varchar(255) NOT NULL,
  `vdd` varchar(255) NOT NULL,
  `ddd` date NOT NULL,
  `mdt` varchar(255) NOT NULL,
  `mdp` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
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
 
INSERT INTO `membres` (`id`, `identite`, `idparrain`, `telephone`, `mail`, `province`, `vdd`, `ddd`, `mdt`, `mdp`) VALUES
(7, 'Georges', 2, '(+243)903452198', 'georges@yahoo.fr', 'Kongo Central', '100$', '2018-07-19', 'Mpesa', '2453f80431877254016377c5e36e49046aec3d80'),
(8, 'Sevi Vingu', 7, '(+243)978374637', 'sevi@tozaa.net', 'Kinshasa', '100$', '2018-07-12', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(9, 'Alex', 7, '(+243)821307485', 'alex@voila.fr', 'Equateur', '10$', '2018-07-12', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
(10, 'Bob', 7, '(+243)814658204', 'bob@voici.fr', 'Kasai Oriental', '10$', '2018-07-28', 'Orange Money', '2453f80431877254016377c5e36e49046aec3d80'),
(11, 'Annie', 7, '(+243)907070443', 'annie@caramail.com', 'Kinshasa', '100$', '2018-07-04', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
(12, 'Dwayne', 0, '(+243)837028746', 'dwayne@yahoo.fr', 'Equateur', '10$', '2018-07-27', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
(14, 'Patrick Bitafu Sabu', 27, '00822156182', 'patrickbibu@gmail.com', 'Kinshasa', '1000', '2018-07-22', 'Mpesa', 'ffd6c8edba114c86c1130600feac0e3eb11d5661'),
(15, 'Mbuyi kaba', 14, '(+243)821307485', 'aaron@yahoo.fr', 'Kinshasa', '1000', '2018-07-21', 'Mpesa', 'c60a535544b1c1fcf05fab35d7f33aa8dbcd0cb3'),
(16, 'Korzo Barni Clavis', 15, '+44512223489', 'lixcor@gmail.com', 'Kinshasa', '1000', '2018-07-22', 'Mpesa', '549a53d9060d1e3bd995a8d7a9ed451dbed90c71'),
(17, 'Korzo Barni Vilenia', 14, '+44512223489', 'lixcordabi@gmail.com', 'Kinshasa', '1000', '2018-07-22', 'Airtel Money', 'fea4e1eb91d28b1544a362c085c3e9d2fb4273d1'),
(18, 'Malik', 8, '08114278309', 'malik@gmail.com', 'Kinshasa', '10$', '2018-09-09', 'Mpesa', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(19, 'Hussein', 18, '0972123456', 'hussein@gmail.com', 'Equateur', '10$', '2018-09-10', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(20, 'Hassan', 18, '0986543456', 'hassan@gmail.com', 'Province Orientale', '10$', '2018-09-11', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(21, 'Ahmed', 19, '0825647389', 'ahmed@gmail.com', 'Nord Kivu', '10$', '2018-09-12', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(22, 'Andrew', 19, '0374976372', 'andrew@gmail.com', 'Bandundu', '10$', '2018-09-05', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(23, 'Talent', 18, '0938403647', 'talent@gmail.com', 'Kongo Central', '10$', '2018-09-05', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(24, 'Pedro', 19, '03849393847', 'pedro@gmail.com', 'Kongo Central', '10$', '2018-09-06', 'Mpesa', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(25, 'Vingu', 18, '78909', 'vingu@gmail.com', 'Bandundu', '10$', '2018-09-20', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(26, 'ngoma', 18, '93038', 'ngoma@gmail.com', 'Kasai Occidental', '10$', '2018-09-21', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
(27, 'Lea', 18, '2930', 'lea@gmail.com', 'Province Orientale', '10$', '2018-09-20', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80');
Puis le calcul recursif

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
42
43
 
with recursive cte (`id`, `idparrain`, `nbre`) as
  (  select  id,
             idparrain,
             0 as nbre
       from  `membre`
  union all
     select  m.id,
             m.idparrain,
             1 as nbre
       from  `membre` as m
 inner join  cte
         on  m.id=cte.idparrain
  )
     select  id, sum(nbre) as qte
       from  cte
   group by  id
--------------
 
+------+------+
| id   | qte  |
+------+------+
|    7 |   18 |
|    8 |   14 |
|    9 |    0 |
|   10 |    0 |
|   11 |    0 |
|   12 |    0 |
|   14 |    3 |
|   15 |    1 |
|   16 |    0 |
|   17 |    0 |
|   18 |   13 |
|   19 |    3 |
|   20 |    0 |
|   21 |    0 |
|   22 |    0 |
|   23 |    0 |
|   24 |    0 |
|   25 |    0 |
|   26 |    0 |
|   27 |    4 |
+------+------+
Bref, j'aimerai afficher la qte sur le profil php de l'id correspondant. Merci.