merger des tableaux après requêtes
Bonjour,
J'ai un petit soucis concernant l'utilisation des tableaux.
Voici le code en question :
Code:
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
| $qcs = "
SELECT
C.id as cid,
C.order as corder,
C.name as cname
FROM ci_categories AS C
ORDER BY `corder` ASC
";
$categories = $this->db->query($qcs);
$cs = $categories->result_array();
echo 'Categories';
$this->print_pre($cs);
foreach ($cs as $c){
$cid = $c['cid'];
$qps = "
SELECT
P.id AS pid,
P.name AS pname,
P.price AS pprice
FROM ci_products AS P
WHERE $cid = P.category_id
ORDER BY pprice ASC
";
$products = $this->db->query($qps);
$ps = $products->result_array();
$c['cproducts']=$ps;
echo 'Categories et produits';
$this->print_pre($c);
foreach ($ps as $p){
$pid = $p['pid'];
$qis = "
SELECT
I.name AS ingredient_name
FROM ci_ingredients AS I
LEFT JOIN ci_recipies as R
ON (I.id = R.ingredient_id)
WHERE (R.product_id = $pid)
ORDER BY ingredient_name ASC
";
$ingredients = $this->db->query($qis);
$is = $ingredients->result_array();
$p['pingredients'] = $is;
echo 'produits et ingredients';
$this->print_pre($p);
}
} |
Et voici le résultat obtenu :
Code:
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
| Categories
Array
(
[0] => Array
(
[cid] => 5
[corder] => 1
[cname] => 1st category
)
[1] => Array
(
[cid] => 7
[corder] => 2
[cname] => 2nd category
)
)
Categories et produits
Array
(
[cid] => 5
[corder] => 1
[cname] => 1st category
[cproducts] => Array
(
[0] => Array
(
[pid] => 1
[pname] => Azer
[pprice] => 13.00
)
[1] => Array
(
[pid] => 2
[pname] => Poimlk
[pprice] => 25.50
)
)
)
produits et ingredients
Array
(
[pid] => 1
[pname] => Azer
[pprice] => 13.00
[pingredients] => Array
(
[0] => Array
(
[ingredient_name] => D
)
[1] => Array
(
[ingredient_name] => F
)
)
)
produits et ingredients
Array
(
[pid] => 2
[pname] => Poimlk
[pprice] => 25.50
[pingredients] => Array
(
[0] => Array
(
[ingredient_name] => A
)
[1] => Array
(
[ingredient_name] => D
)
[2] => Array
(
[ingredient_name] => H
)
[3] => Array
(
[ingredient_name] => R
)
)
)
Categories et produits
Array
(
[cid] => 7
[corder] => 2
[cname] => 2nd category
[cproducts] => Array
(
[0] => Array
(
[pid] => 3
[pname] => 3rd recipe
[pprice] => 16.25
)
)
)
produits et ingredients
Array
(
[pid] => 3
[pname] => 3rd recipe
[pprice] => 16.25
[pingredients] => Array
(
)
) |
Mon soucis du moment :
Comment faire pour merger tous ces tableaux en un seul gros tableau comprenant toutes les informations imbriquées ?
En l'occurence, pour le moment, j'arrive à récupérer les catégories, les produits, les ingrédients, mais je n'arrive pas à faire un gros tableau de tout ça.
Merci d'avance pour toute aide.
PS : la fonction print_pre() est juste une fonction de mise en page des tableaux (éduivalent de print_r() mais mis en page pour faciliter la lecture)