Requête SQL

Il y a 1 mois
#

Bonjour, je voudrais récupérer en BDD une table en faisant une jointure entre 2 colonnes et que ça me sorte un tableau que je ferais passer avec ajax et qui ressemble a celui ci au final:

const menuData = [

    {

        libelle: 'Document',

        id: 1,

        parent: 0,

        subMenu: [

            {

                libelle: 'Administratif',

                id: 3,

                parent: 1,

                subMenu: [

                    {

                        libelle: 'Admin 1',

                        id: 6,

                        parent: 3,

                    },

                    {

                        libelle: 'Admin 2',

                        id: 7,

                        parent: 3,

                    }

                ]

            },

            {

                libelle: 'Bureau',

                id: 4,

                parent: 1,

                subMenu: [

                    {

                        libelle: 'Bureau 1',

                        id: 8,

                        parent: 4,

                    },

                    {

                        libelle: 'Bureau 2',

                        id: 9,

                        parent: 4,

                    }

                ]

            },

            {

                libelle: 'CA',

                id: 5,

                parent: 1,

                subMenu: [

                    {

                        libelle: 'CA 1',

                        id: 10,

                        parent: 5

                    },

                    {

                        libelle: 'CA 2',

                        id: 11,

                        parent: 5,

                        subMenu: [

                            {

                                libelle: 'Essai 1',

                                id: 12,

                                parent: 11,


 

                            },

                            {

                                libelle: 'Essai 2',

                                id: 13,

                                parent: 11,

                            }

                        ]

                    }

                ]

            },

            {

                libelle: 'CA 2024',

                id: 2,

                parent: 1

            }


 

        ]

    }

];

Je ne sais pas si je travaille en php, sql ou js et je n'arrive pas a faire ma requête SQL.

Avez-vous une solution?

Cordialement

Répondre
Avatar de nonodurengo

nonodurengo

Il y a 1 mois #

Bonsoir,

La première chose à faire est d'obtenir les données souhaitées par une requête SQL (dans phpmyadmin par exemple)

Avatar de Benoit

Benoit

Il y a 1 mois #

Bonsoir,

Pour récupérer les données, j'ai fait ça:

public function selectDeplaRep()

    {

        $sql = 'SELECT dossier.id, dossier.libelle, dossier.parent FROM dossier WHERE dossier.statut=:statut ORDER BY dossier.parent, dossier.libelle';

        $data = [

            ':statut' => 1

        ];

        // On prepare la requette

        $req = $this->getPDO()->prepare($sql);

        // On définit le mode de récupération par défaut pour cette requête

        $req->setFetchMode(PDO::FETCH_CLASS, 'DocumentsModel');

        // On execute la requette

        $req->execute($data);

        $dossiers = $req->fetchAll();

        // var_dump($dossiers);

        return $dossiers;

    }

 

Le problème, c'est la suite pour construire le tableau pour qu'il soit au format présent précédemment 

Avatar de nonodurengo

nonodurengo

Il y a 1 mois #

Si toutes les données sont récupérées avec la requête, pourquoi ne pas les transmettre telles qu'elles sont ? Qu'est-ce qui impose le format mis dans le 1er post ?

Avatar de Benoit

Benoit

Il y a 1 mois #

Je voudrais faire un menu nav avec des ul, li et a avec plusieurs niveaux

Avatar de nonodurengo

nonodurengo

Il y a 1 mois #

Et les données brutes issues de ta requête ne te le permettent pas ?

Avatar de Benoit

Benoit

Il y a 1 mois #

Après 7 jours sans activité, ce sujet a automatiquement été verrouillé

Avatar de NT Bot

NT Bot