【发布时间】:2018-12-25 06:58:30
【问题描述】:
请帮助我处理下面的代码,它没有按预期工作。我在下面的 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。您当前正在遍历所有结果,然后在结果中循环
-
感谢您的回答,它很有帮助。
-
没问题。我个人尽可能多地尝试画/写我必须做的事情以及我希望如何解决我的问题。找出代码有什么问题并避免在没有真正注意的情况下自动执行操作很有帮助
标签: php mysql while-loop phpmyadmin