Как динамически загружать теги <li> с переменными базы данных на мою страницу в соответствии с массивом?

Я пытаюсь динамически загружать теги 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
        )

)

Я добавил эхо, но понимаю, что это неверно

Jacques Engelbrecht 16.11.2018 06:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
56
2

Ответы 2

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>";                

                }

Пожалуйста, отметьте его как решенное и / или проголосуйте за него. Надеюсь, мой ответ направил вас в правильном направлении.

Difster 16.11.2018 06:27

Спасибо за ваш ответ. Однако у меня есть еще один вопрос. Как включить стиль в эти динамически загружаемые теги?

Jacques Engelbrecht 16.11.2018 08:16

Это не сработает, так как вы перезаписываете $list_items для каждого элемента.

Nico Haase 16.11.2018 10:36

Забыл сделать + =, извините. Было поздно. Это фиксированная.

Difster 16.11.2018 15:02

У вас есть два решения: после сбора всех строк вы можете вывести данные с помощью другого цикла. Это могло выглядеть так:

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>';
}

Другие вопросы по теме