使用 PHP 和 SQL 从数据库动态生成无序列表

Posted

技术标签:

【中文标题】使用 PHP 和 SQL 从数据库动态生成无序列表【英文标题】:Dynamic generation of unordered list from database with PHP and SQL 【发布时间】:2022-01-06 14:22:50 【问题描述】:

我从 2021 年 4 月开始编写代码,所以我对此非常陌生。正在准备期末考试,我需要您的宝贵帮助!我想从数据库中生成一个动态列表,其中包含 2 个连接表(用户和兴趣)。这两个表都包含“ID_user”,将它们作为外键链接。这个想法是用户登录后,个人资料页面会显示用户在注册时选择的所有兴趣。目前我只能显示最后选择的兴趣,而不是全部。

这是我的 php

$request2 = "SELECT `interest`.`name_Interest` 
            FROM `interest` 
            INNER JOIN `users` 
                ON `interest`.`ID_user` = `users`.`ID_user` 
            WHERE `pseudo` = '".$url_pseudo."'
            ";

$resultat2 = mysqli_query($connexion, $request2) or die (mysqli_error($connexion));


$nb_resultat2 = mysqli_num_rows($resultat2);

if ($nb_resultat2 > 0) 

    while ($row = mysqli_fetch_array($resultat2))

        $name_Interest = $row["name_Interest"];

    

这是显示响应的 html

enter image description here

这是我的数据库:

enter image description here

知道为什么我只能得到 1 个值吗?

enter image description here

提前致谢

【问题讨论】:

【参考方案1】:

您的 while 循环为循环的每次迭代写入相同的变量;

while ($row = mysqli_fetch_array($resultat2))
    $name_Interest = $row["name_Interest"];

这将使$name_Interest 包含循环完成后数据库中的最后一个值。

要解决此问题,您需要保留兴趣名称列表 - 这可以通过使用数组来实现。 PHP Array Documentation

// Declares the empty array 
$interests = [];

// Loop through database results
while ($row = mysqli_fetch_array($resultat2))
    // Add this value to the array
    $interests[] = $row["name_Interest"];

现在,$interests 将保存数据库中的所有值!

您需要在 HTML 中以不同的方式打印这些值,方法是遍历数组中的所有值并一次打印一个: (PHP foreach documentation)

<ul>
    <?php foreach ($interests as $interest)  ?>
        <li><?php echo $interest; ?></li>
    <?php  ?>
</ul>

【讨论】:

【参考方案2】:

解决方案 简单地将所有用户兴趣存储在数组中,然后在页面上迭代显示。

代码:

$user_interests=array();
 while ($row = mysqli_fetch_array($resultat2))

        $user_interests[] = $row["name_Interest"];
    

现在 $user_interests 数组保存了用户加入后的所有兴趣。

最后一次循环

 <?php foreach ($user_interests as $interest)  ?>
        <p><?php echo $interest; ?></p>
    <?php  ?>

【讨论】:

以上是关于使用 PHP 和 SQL 从数据库动态生成无序列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET 中动态生成列表项到无序列表?

PHP多维数组到无序列表,建立url路径

使用 ajax、sql 和 php 的动态下拉列表

如何使用 jquery 和 php 从动态数据中设置默认下拉列表?

通过单个实体迭代到HTML无序列表

我需要使用 PHP 从 html/php 文件中删除动态信息