#php #html
#php #HTML
Вопрос:
Я пытаюсь отобразить набор данных на уровне дерева
Например, это моя запись в базе данных
Я хочу показать это как
и так далее.
Конечно, приведенная выше картинка вводится вручную мной самим
<?php
require 'tree.php';
$tree = array(
'wwq' => array(
'Project4' => array(
'phase1',
),
'Project23' => array(
'phase23',
),
'Test1' => array(
'test1',
),
'Projecttest' => array(
'phasetest',
'testtest',
)
),
);
echo treeOut($tree);
?>
и моя функция заключается в
<?php
function treeOut($row_Recordset1){
$markup = '';
foreach ($row_Recordset1 as $branch => $twig){
$markup .= '<li>' . ((is_array($twig)) ? $branch . treeOut($twig) : $twig). '</li>';
}
return '<ul>' . $markup . '</ul>';
}
?>
Итак, мой вопрос заключается в том, как я могу превратить массив в цикл for вместо ввода ключа I в каждые данные.
Спасибо, если кто-нибудь может мне помочь!! Если у вас есть какие-либо вопросы, можете задать мне комментарий ниже.
Комментарии:
1. «мой вопрос в том, как я могу преобразовать массив в цикл for вместо ввода I в каждые данные» Я не понимаю, что изменится с циклом for? Насколько я понимаю, будете ли вы использовать
for
foreach
цикл or, вам все равно придется вводить те же данные?2. Да, приведенный выше массив вводится вручную самостоятельно, но я не хочу этого делать. Я хочу получить данные из цикла for. Могу ли я узнать, где я ошибаюсь?
Ответ №1:
Если речь идет о том, как вы можете подготовить массив в требуемом формате перед передачей его в treeOut()
функцию, попробуйте добавить эти строки перед вызовом treeOut()
:
$tree = array();
$sql = "SELECT * FROM tbl_name ORDER BY companyName ASC, projectName ASC, phaseName ASC";
$result = mysql_query($connection, $sql);
while($data = mysql_fetch_array($result)){
$tree[ $data['companyName'] ][ $data['projectName'] ][] = $data['phaseName'];
}
echo treeOut($tree);
Надеюсь, это то, что вы ищете, и поможет.
Комментарии:
1. Спасибо за помощь!!! Однако все равно появляется сообщение об ошибке Предупреждение: mysqli_query() ожидает, что параметр 1 будет mysqli
2. Измените
mysqli_*
наmysql_*
, если вы используете старые функции mysql.3. та же проблема, она просто изменена на предупреждение: mysql_query() ожидает, что параметр 1 будет mysql. Кроме того, я добавил глобальный, но он по-прежнему не работает