Bonjour,

J'aimerais créer un retour vers le client en format json de type :

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
{
      'id': '1',
      'name': 'Lao Lao',
      'title': 'general manager',
      'children': [
        { 'id': '2', 'name': 'Bo Miao', 'title': 'department manager' },
        { 'id': '3', 'name': 'Su Miao', 'title': 'department manager',
          'children': [
            { 'id': '4', 'name': 'Tie Hua', 'title': 'senior engineer' },
            { 'id': '5', 'name': 'Hei Hei', 'title': 'senior engineer',
              'children': [
                { 'id': '6', 'name': 'Pang Pang', 'title': 'engineer' },
                { 'id': '7', 'name': 'Xiang Xiang', 'title': 'UE engineer' }
              ]
            }
          ]
        },
        { 'id': '8', 'name': 'Yu Jie', 'title': 'department manager' },
        { 'id': '9', 'name': 'Yu Li', 'title': 'department manager' },
        { 'id': '10', 'name': 'Hong Miao', 'title': 'department manager' },
        { 'id': '11', 'name': 'Yu Wei', 'title': 'department manager' },
        { 'id': '12', 'name': 'Chun Miao', 'title': 'department manager' },
        { 'id': '13', 'name': 'Yu Tie', 'title': 'department manager' }
      ]
    };
Mais en PHP avec ma fonction :
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
$datas = array();
 
$i = 0;
 
function afficherTree($bdd, &$datas, &$i, $libele_court_service) {
    $serviceQuery = "SELECT * FROM service WHERE dependance = :serviceLibeleCourt";
    $serviceStmt = $bdd->prepare($serviceQuery);
    $serviceStmt->execute(['serviceLibeleCourt' => $libele_court_service]);
    $services = $serviceStmt->fetchAll(PDO::FETCH_ASSOC);
 
    // echo "nb : " . count($services) . "<br>";
    if ( count($services) > 0 ) {
 
        foreach ($services as $service) {
            $id_service = $service['id_service'];
 
            $libele_court_service = $service['libele_court_service'];
            $chef_service = $service['chef_service'];
 
            $personnesQuery = "SELECT nom, prenom FROM personne WHERE MATRICULE = :chefService";
            $personnesStmt = $bdd->prepare($personnesQuery);
            $personnesStmt->execute(['chefService' => $chef_service]);
            $personnes = $personnesStmt->fetchAll(PDO::FETCH_ASSOC);
 
            if ( count($personnes) > 0 ) {
                $personne = $personnes[0];
 
                $name = $personne['prenom'] . ' ' . $personne['nom'];
            } else {
                $name = 'N.C.';
            }
 
            $j = $i + 1;
 
            $datas[] = array(
              "id" => $j,
              "name" => trim($service['libele_court_service']),
              "title" => $name,
              "children" => array(afficherTree($bdd, $datas, $i, $libele_court_service))
            );
 
            $i++;
 
 
            /*$service2Query = "SELECT * FROM service WHERE dependance = :serviceLibeleCourt";
            $service2Stmt = $bdd->prepare($service2Query);
            $service2Stmt->execute(['serviceLibeleCourt' => $libele_court_service]);
            $services2 = $service2Stmt->fetchAll(PDO::FETCH_ASSOC);
 
            if ( count($services2) > 0 ) {
              
            }*/
        }
    }
}
 
afficherTree($bdd, $datas, $i, '');
Il me sort pas du bon format....

Une idée ?


Merci