PHP merger des tableaux
Résolu/Fermé
gryzzly
Messages postés
4608
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
-
23 mars 2009 à 22:39
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 - 24 mars 2009 à 01:42
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 - 24 mars 2009 à 01:42
A voir également:
- PHP merger des tableaux
- Tableaux croisés dynamiques - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fusionner deux tableaux excel - Guide
- Php natif - Forum PHP
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
1 réponse
gryzzly
Messages postés
4608
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 330
24 mars 2009 à 01:42
24 mars 2009 à 01:42
Ca y'est, j'ai trouvé la solution. Il m'a fallu un peu de temps, mais en fait c'était pas compliqué, juste trouver l'idée.
J'ai simplement rajouté un compteur, et j'envoie les données de chaque sous requête dans le tableau initial.
Le résultat, attendu :
Comme ça, je peux envoyer $cs dans ma vue, et avec une simple routine foreach(), je peux faire mettre en page le contenu.
J'ai simplement rajouté un compteur, et j'envoie les données de chaque sous requête dans le tableau initial.
$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(); $c_c = 0; // Initialisation du compteur de categorie 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(); $cs[$c_c]['cproducts']=$ps $c_p = 0; // Initialisation du compteur de produit 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(); $cs[$c_c]['cproducts'][$c_p]['pingredients'] = $is; $c_p++; } $c_c++; } $this->print_pre($cs);
Le résultat, attendu :
Array ( [0] => Array ( [cid] => 5 [corder] => 1 [cname] => 1st category [cproducts] => Array ( [0] => Array ( [pid] => 1 [pname] => Azer [pprice] => 13.00 [pingredients] => Array ( [0] => Array ( [ingredient_name] => D ) [1] => Array ( [ingredient_name] => F ) ) ) [1] => 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 ) ) ) ) ) [1] => Array ( [cid] => 7 [corder] => 2 [cname] => 2nd category [cproducts] => Array ( [0] => Array ( [pid] => 3 [pname] => 3rd recipe [pprice] => 16.25 [pingredients] => Array ( ) ) ) ) )
Comme ça, je peux envoyer $cs dans ma vue, et avec une simple routine foreach(), je peux faire mettre en page le contenu.