I'm stuck with a small PHP loop.
My query returns 10 rows, with columns 'id' and 'parentId'. I'm trying to create an array of parent ids to use for breadcrumbs on a site.
Current page ID is '6'. It's parent is '5', which again has page '3' as parent. Page '3' has '0' as parent... Array should then be 5, 3, 0.
$stmt = $db->query("
SELECT id, parentId
FROM cat
");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
function crumbs($rows, $id = '6') {
$crumbs = array();
foreach ($rows as $row) {
if ($row['id'] == $id) {
if ($row['parentId'] != 0) {
crumbs($rows, $row['parentId']);
}
$crumbs[] = $row['parentId'];
}
}
// echo $crumbs returns Array, Array, Array...
return $crumbs;
}
$json['crumbs'][] = crumbs($rows);
// ...but $json['crumbs'] return only one Array (5).
echo json_encode($json);
Edit: MySql Rows:
0 0
1 0
2 0
3 0
4 3
5 3
6 5
7 7
9 2
12 3
And a SQLFiddle