Я думаю, что ваш код немного беспорядок!
//What did you think here? (!empty() == 0)
while ($obj = mysqli_fetch_assoc($dbc)) {
if (!empty($obj['parent_id']) == 0) {
// Echo with assignment trying to save variables?
echo $parent_menu . $obj['id']['label'] = $obj['label'];
echo $parent_menu . $obj['id']['link'] = $obj['link_url'];
} else {
echo $sub_menu . $obj['id']['parent'] = $obj['parent_id'];
echo $sub_menu . $obj['id']['label'] = $obj['label'];
echo $sub_menu . $obj['id']['link'] = $obj['link_url'];
echo $parent_menu . $obj['parent_id']['count']++;
}
}
Я не оцениваю ваш стиль, но думаю, что если вы измените свой стиль кода, вам будет намного легче отслеживать ошибки.
Проблема в $obj['parent_id']['count']++;
Это не число и не может использовать приращение. $obj['parent_id']
- это даже не массив, в котором есть элемент count. Более того, если вы хотите создать счетчик, он, вероятно, будет удален в следующем цикле, поскольку вы сохраните его в переменной $obj
, которая будет перезаписана.
Я думаю, тебе нужно что-то подобное или нет. Не могу понять, какие именно критерии вы хотите в предложении if
. Или что именно счетчик хочет посчитать? Сумма parent_ids или количество parent_id.
$counter = 0;
while ($obj = mysqli_fetch_assoc($dbc)) {
if (empty($obj['parent_id'])) {
echo $parent_menu . $obj['label'];
echo $parent_menu . $obj['link_url'];
} else {
echo $sub_menu . $obj['parent_id'];
echo $sub_menu . $obj['label'];
echo $sub_menu . $obj['link_url'];
echo $parent_menu . ($counter++);
}
}
Надеюсь, это помогло