我在2021年4月开始编写代码,所以我对这个非常陌生。在我的期末考试中,我需要你的宝贵帮助!我想从一个数据库生成一个动态列表,包含2个连接表(用户和兴趣)。这两个表都包含“ID_user”,它将它们作为外键进行链接。其思想是,一旦用户登录,个人资料页面显示了用户在注册时选择的所有兴趣。2目前我只能显示最后选择的兴趣,而不是所有的兴趣。
下面是我的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
先谢了
2条答案
按热度按时间7qhs6swi1#
您的while循环在循环的每次迭代中都写入同一个变量;
这将使
$name_Interest
在循环完成后包含数据库中的最后一个值。要解决这个问题,您需要保留一个感兴趣的名称列表--这可以通过使用数组来实现。PHP Array Documentation
现在,
$interests
将保存数据库中的所有值!您需要在HTML中以不同的方式打印这些值,方法是循环遍历数组中的所有值,并一次打印一个值:(PHP foreach documentation)
kkih6yb82#
Solution Simple将所有用户感兴趣的内容存储在阵列上,然后在页面上的迭代中显示。
编码:
现在,$user_interests数组保存了用户的所有兴趣作为join的结果。
最后在它上面循环