Я пытаюсь динамически загружать теги li с переменными базы данных на мою страницу в соответствии с массивом, который я получаю из своей базы данных. Количество тегов li будет переменным. Я изо всех сил пытаюсь этого добиться. Пожалуйста, любая помощь будет оценена по достоинству
$packages_menu = array();
$sql = ("SELECT provider, technology_name FROM technology ORDER BY technology_id ASC");
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)) {
$packages_menu[] = $row;
}
Что у меня есть ?
<li><?php echo $packages_menu; ?></li>
Вот массив
Array
(
[0] => Array
(
[provider] => openserve
[technology_name] => fibre
)
[1] => Array
(
[provider] => openserve
[technology_name] => adsl
)
[2] => Array
(
[provider] => trusc
[technology_name] => fibre
)
[3] => Array
(
[provider] => trusc
[technology_name] => wireless
)
[4] => Array
(
[provider] => sonic
[technology_name] => wireless
)
)






Now, I'm not sure exactly how you're trying to display it, but you can see from the code below how to put your data in side of a list of tags. Then just return that list in the middle of your opening and closing `<ul>` tags.
$list_items = ""; //declare outside of the loop
while($row = mysqli_fetch_assoc($result)) {
$list_items += "<li>" . $row['provider'] . "</li>";
$list_items += "<li>" . $row['technology_name'] . "</li>";
}
Пожалуйста, отметьте его как решенное и / или проголосуйте за него. Надеюсь, мой ответ направил вас в правильном направлении.
Спасибо за ваш ответ. Однако у меня есть еще один вопрос. Как включить стиль в эти динамически загружаемые теги?
Это не сработает, так как вы перезаписываете $list_items для каждого элемента.
Забыл сделать + =, извините. Было поздно. Это фиксированная.
У вас есть два решения: после сбора всех строк вы можете вывести данные с помощью другого цикла. Это могло выглядеть так:
foreach($packages_menu as $row) {
echo '<li>' . $row['provider'] . '</li>';
}
Это может быть хорошим решением, если сбор всех данных и их вывод не происходит непосредственно один за другим.
Если между ними нет кода, нет необходимости использовать промежуточный массив строк. Таким образом, это может сработать, даже если это не очень хорошее решение (которое должно сохранять логику PHP и выводить немного более раздельно, как в первом решении):
$sql = ("SELECT provider, technology_name FROM technology ORDER BY technology_id ASC");
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)) {
echo '<li>' . $row['provider'] . '</li>';
}
Я добавил эхо, но понимаю, что это неверно