gpt4 book ai didi

php - 如何使用 PHP 在 while 循环中显示单个列?

转载 作者:行者123 更新时间:2023-11-29 05:04:24 26 4
gpt4 key购买 nike

请帮助我解决下面的代码无法按预期工作的问题。我在 mysql 表中有一些记录,如下所示,并使用下面提到的相同列名:

id    |    name        |    referrer
1 | User1 | referrer_one
2 | User2 | referrer_one
3 | User3 | referrer_one
4 | User4 | referrer_two
5 | User5 | referrer_two

我希望在 while 循环中使用 PHP 将上述数据显示如下:

Referrer Username      |     Total Referrals
referrer_one | 3
referrer_two | 2

我正在使用下面的代码,请告诉我我做错了什么:

<table width="100%">
<tr>
<td>Referrer Username</td>
<td>Total Referrals</td>
</tr>
<?php
$data = $db->query("SELECT referrer, count(*) as total_member FROM
user_registration GROUP BY referrer");

while($res=mysqli_fetch_array($data,MYSQLI_BOTH)) {
foreach ($res as $key => $value) {
?>
<tr>
<td><?php echo ($value['referrer']); ?></td>
<td><?php echo ($value['total_member']); ?></td>
</tr>
<?php } } ?>
</table>

使用上面的代码后,我收到以下错误消息:

Warning: Illegal string offset 'referrer'
Warning: Illegal string offset 'total_member'

请帮助我,我真的需要可行的解决方案!

最佳答案

您不需要额外的 foreach 循环,因为 mysqli_fetch_array()一次获取一条记录(结果行)。

试试这个:

while($res=mysqli_fetch_array($data,MYSQLI_BOTH)) { ?>    
<tr>
<td><?php echo ($res['referrer']); ?></td>
<td><?php echo ($res['total_member']); ?></td>
</tr>
<?php } ?>

使用 while 循环,您已经遍历了结果集中的每条记录,直到没有记录为止。

通过额外的 foreach 循环,您可以遍历返回记录的每一列(总共 4 列,因为您使用了 MYSQLI_BOTH):

$key = 0 and $value = some scalar value ... 
$key = 'referrer' and $value = some scalar value ...
$key = 1 and $value = some scalar value ...
$key = 'total_member' and $value = some scalar value

关于php - 如何使用 PHP 在 while 循环中显示单个列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51383667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com