par
VaN » 22 oct. 2009, 15:46
Bonjour,
J'ai une table SQL, qui contient des familles de produits, sous cette forme :
families.gif
Comme vous pouvez le voir, certaines familles sont des enfants d'autres familles, autrement dit, des sous-familles.
J'aimerai créer une fonction, qui me retourne un tableau, contenant l'ensemble de ces familles, où les enfants, sont un tableau contenu dans le parent.
Quelque chose ressemblant à ça :
Code : Tout sélectionner
Array
(
[0] => Array
(
[family_id] => 1
[family_name] => Vetements
[children] => Array
(
[0] => Array
(
[family_id] => 2
[family_name] => T-shirts
[children] => Array
(
[0] => Array
(
[family_id] => 5
[family_name] => T-shirts Hommes
)
)
)
[1] => Array
(
[family_id] => 3
[family_name] => Pantalons
)
)
)
[1] => Array
(
[family_id] => 4
[family_name] => Informatique
)
)
J'imagine qu'il faut que je fasse une fonction qui s'appelle elle-même, à un moment ou à un autre (il me semble que cela s'appelle une fonction récursive ?), mais je n'arrive pas à organiser ma réflexion pour trouver comment faire.
J'ai commencé à faire la fonction suivante, mais je reçois une erreur PHP et je ne sais pas trop pourquoi.
// Remplie un tableau contenant une famille, avec ses enfants, et retourne ce tableau
function fill_family_with_children($family_array) {
global $config, $tables;
$children = getDataFromQuery(sprintf("SELECT family_id, family_name FROM ".$tables["families"]." WHERE family_parent_id = '%d' AND family_statut = 1",
$family_array["family_id"]), true);
if(!empty($children)) {
//print_r_pre($children, "red");
foreach($children as $key => $child) {
//print_r_pre($child, "green");
$children[$key] = fill_family_with_children($child);
}
$family_array["children"] = $children;
}
return $family_array;
}
Notice: Array to string conversion in lib\lib.main.php on line 866
Quelqu'un pourrait-il me donner un coup de pouce ?
Merci d'avance
Bonjour,
J'ai une table SQL, qui contient des familles de produits, sous cette forme :
[attachment=0]families.gif[/attachment]
Comme vous pouvez le voir, certaines familles sont des enfants d'autres familles, autrement dit, des sous-familles.
J'aimerai créer une fonction, qui me retourne un tableau, contenant l'ensemble de ces familles, où les enfants, sont un tableau contenu dans le parent.
Quelque chose ressemblant à ça :
[code]Array
(
[0] => Array
(
[family_id] => 1
[family_name] => Vetements
[children] => Array
(
[0] => Array
(
[family_id] => 2
[family_name] => T-shirts
[children] => Array
(
[0] => Array
(
[family_id] => 5
[family_name] => T-shirts Hommes
)
)
)
[1] => Array
(
[family_id] => 3
[family_name] => Pantalons
)
)
)
[1] => Array
(
[family_id] => 4
[family_name] => Informatique
)
)[/code]
J'imagine qu'il faut que je fasse une fonction qui s'appelle elle-même, à un moment ou à un autre (il me semble que cela s'appelle une fonction récursive ?), mais je n'arrive pas à organiser ma réflexion pour trouver comment faire.
J'ai commencé à faire la fonction suivante, mais je reçois une erreur PHP et je ne sais pas trop pourquoi.
[php]// Remplie un tableau contenant une famille, avec ses enfants, et retourne ce tableau
function fill_family_with_children($family_array) {
global $config, $tables;
$children = getDataFromQuery(sprintf("SELECT family_id, family_name FROM ".$tables["families"]." WHERE family_parent_id = '%d' AND family_statut = 1",
$family_array["family_id"]), true);
if(!empty($children)) {
//print_r_pre($children, "red");
foreach($children as $key => $child) {
//print_r_pre($child, "green");
$children[$key] = fill_family_with_children($child);
}
$family_array["children"] = $children;
}
return $family_array;
}[/php]
[quote]Notice: Array to string conversion in lib\lib.main.php on line 866[/quote]
Quelqu'un pourrait-il me donner un coup de pouce ?
Merci d'avance