Bonjour,

Je dispose de deux tables mysql :

==> myp_rayon :

  • id....................D du rayon
  • id_hangar......Hangar dans lequel se trouve le rayonnage
  • rayon..............Nom du rayon
  • actif.................Si le rayon est actif ou pas (0 ou 1)

Pour chaque rayon j'ai plusieurs positions, positions qui sont stockées dans une table :
==> myp_position :

  • id..................D de la position
  • id_rayon.......ID du rayon à laquelle appartient la position (table ci-dessus)
  • position........Nom de la position

Mon but final est que pour chaque hangar je puisse afficher le contenu des rayonnages ainsi que leur position

<p>Hangar 1</p>
<table>
    <thead>
        <tr>
            <th>Rayon</th>
            <th>Positions du rayon</th>
            <th>Rayon actif</th>
            <th>Editer</th>
            <th>Supprimer</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>YA</td>
            <td>A100 | A101 | A102 | A103 |B100 | B101 |B102</td>
            <td>X</td>
            <td><a href="#">edit</a></td>
            <td><a href="#">delete</a></td>
        </tr>
        <tr>
            <td>YB</td>
            <td>X100 | X101 | X102 | X103 |U100 |U101</td>
            <td>X</td>
            <td><a href="#">edit</a></td>
            <td><a href="#">delete</a></td>
        </tr>
        <tr>
            <td>YC</td>
            <td>A100 | A101 | A102 | A103 |B100 | B101 |B102</td>
            <td>X</td>
            <td><a href="#">edit</a></td>
            <td><a href="#">delete</a></d>
        </tr>
    </tbody>
</table>

<p>Hangar 2</p>
<table>
    <thead>
        <tr>
            <th>Rayon</th>
            <th>Positions du rayon</th>
            <th>Rayon actif</th>
            <th>Editer</th>
            <th>Supprimer</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>YA</td>
            <td>A100 | A101 | A102 | A103 |B100 | B101 |B102</td>
            <td>X</td>
            <td><a href="#">edit</a></td>
            <td><a href="#">delete</a></td>
        </tr>
        <tr>
            <td>YB</td>
            <td>A100 | A101 | A102 | A103 |B100 | B101 |B102</td>
            <td>X</td>
            <td><a href="#">edit</a></td>
            <td><a href="#">delete</a></td>
        </tr>
        <tr>
            <td>YC</td>
            <td>A100 | A101 | A102 | A103 |B100 | B101 |B102</td>
            <td>X</td>
            <td><a href="#">edit</a></td>
            <td><a href="#">delete</a></d>
        </tr>
    </tbody>
</table>

Du coup j'ai effectué une requête de la sorte :

$db=new PDO();
$req=$db->query("
SELECT
    RA.id_hangar,
    RA.id_rayon,
    RA.rayon,
    RA.actif
FROM myp_rayon as RA
LEFT JOIN myp_position as PO ON RA.id = PO.id_rayon");
$req_list=$req->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_GROUP);

La requête me sort un tableau associatif comme suit :
array (size=3)
1 =>
array (size=7)
0 =>
array (size=3)
'id_rayon' => string '1' (length=1)
'rayon' => string 'YA' (length=2)
'rayon_actif' => string '1' (length=1)
1 =>
array (size=3)
'id_rayon' => string '1' (length=1)
'rayon' => string 'YA' (length=2)
'rayon_actif' => string '1' (length=1)
2 =>
array (size=3)
'id_rayon' => string '2' (length=1)
'rayon' => string 'YB' (length=2)
'rayon_actif' => string '1' (length=1)
3 =>
array (size=3)
'id_rayon' => string '2' (length=1)
'rayon' => string 'YB' (length=2)
'rayon_actif' => string '1' (length=1)
4 =>
array (size=3)
'id_rayon' => string '2' (length=1)
'rayon' => string 'YB' (length=2)
'rayon_actif' => string '1' (length=1)
5 =>
array (size=3)
'id_rayon' => string '2' (length=1)
'rayon' => string 'YB' (length=2)
'rayon_actif' => string '1' (length=1)
6 =>
array (size=3)
'id_rayon' => string '3' (length=1)
'rayon' => string 'YC' (length=2)
'rayon_actif' => string '1' (length=1)
2 =>
array (size=4)
0 =>
array (size=3)
'id_rayon' => string '4' (length=1)
'rayon' => string 'AA' (length=2)
'rayon_actif' => string '1' (length=1)
1 =>
array (size=3)
'id_rayon' => string '4' (length=1)
'rayon' => string 'AA' (length=2)
'rayon_actif' => string '1' (length=1)
2 =>
array (size=3)
'id_rayon' => string '4' (length=1)
'rayon' => string 'AA' (length=2)
'rayon_actif' => string '1' (length=1)
3 =>
array (size=3)
'id_rayon' => string '5' (length=1)
'rayon' => string 'AB' (length=2)
'rayon_actif' => string '1' (length=1)
3 =>
array (size=4)
0 =>
array (size=3)
'id_rayon' => string '6' (length=1)
'rayon' => string 'PA' (length=2)
'rayon_actif' => string '1' (length=1)
1 =>
array (size=3)
'id_rayon' => string '7' (length=1)
'rayon' => string 'PB' (length=2)
'rayon_actif' => string '1' (length=1)
2 =>
array (size=3)
'id_rayon' => string '8' (length=1)
'rayon' => string 'PC' (length=2)
'rayon_actif' => string '1' (length=1)
3 =>
array (size=3)
'id_rayon' => string '9' (length=1)
'rayon' => string 'PE' (length=2)
'rayon_actif' => string '1' (length=1)

Là je bloque pour le traitement de ce tableau pour pouvoir créer mes tableaux pour chaque hangar.

Pour chaque hangar je créé un array (dont je créé la variable dynamiquement).

// $req_list est le résultat de ma requête SQL

foreach ($req_list as $key_hangar => $rayon_array)
        {
            // Génération dynamique de l'array hangar
            $name_hangar='hangar_'.$key_hangar;
            $$name_hangar=[];

            // La suite...

            var_dump($$name_hangar);
        }

Dans l'écriture de mon code pour afficher chaque hangar :

<p>Hangar 1</p>
<table>
<thead>...</thead>
<tboby>
    foreach($hangar_1 as ...)
    {
    ???
    }
</tbody>
</table>

<p>Hangar 2</p>
<table>
<thead>...</thead>
<tboby>
    foreach($hangar_2 as ...)
    {
    ???
    }
</tbody>
</table>

Toute aide est la bien venue.

Aucune réponse