php - While 循环不会停止遍历数组
问题描述
我有一个 php 文件,我在其中创建了一个类 Bank - 有 2 个方法 - 第一个产生 5 个用户并在数据库中填充随机事务第二个应该显示用户的余额。
我在网站上搜索过,没有人在这里有这样的例子。
我已经成功连接到数据库并编写了一个(不是一个很好的)查询来从两个表中获取所有数据。
$query = "SELECT * FROM users, transactions";
我面临的问题是我不太擅长 php,语法让我发疯 - 我的 while 循环循环遍历查询产生的结果,但它在遍历所有结果行后并没有停止数组 - 它只是无休止地重复自己。
$connection = mysqli_connect('localhost', 'root', 'root', 'ipromapp', '3306');
class Bank
{
function balance()
{
global $connection;
if($connection)
{
echo ("Connection online<br>");
}
$query = "SELECT * FROM users, transactions";
$result = mysqli_query($connection, $query) or die(mysql_error());
echo "<table border='1px'>";
echo "<tr>";
echo "<td> ID </td>";
echo "<td> Name </td>";
echo "<td> Balance </td>";
echo "</tr>";
while($row = mysqli_fetch_array($result))
{
$id = $row[0];
$name = $row[1];
$balance = $row[2];
echo "<tr>";
echo "<td> {$id} </td>";
echo "<td> {$name} </td>";
echo "<td> {$balance} </td>";
echo "</tr>";
}
echo "</table>";
}
}
$bank = new Bank;
$bank->randomize();
$bank->balance();
结果如下(数据库atm中有5个用户)http://prntscr.com/mf6edg
它只是去来去去。
我 100% 是 while 循环,但我不知道如何更改其中的条件,如果有人愿意帮助我的话。
解决方案
您的查询将为第一个表的每一行选择第二个表的所有行(您的选择产生一个笛卡尔积)。
假设您的表通过键关联,例如: user_id 您应该尝试加入
SELECT *
FROM users u
INNER JOIN transactions t on u.user_id = t.user_id
这样,您应该只获得与特定 user_id 相关的交易
推荐阅读
- php - 创建规则以使请求仅包含某些键
- c# - 如何使用一个实体框架调用加载多个结果集?
- google-sheets - 查询返回错误无法解析函数 QUERY 参数 2 的查询字符串:NO_COLUMN
- python-3.x - 为什么 reduce(operator.__not__, [True]) 得到 True?
- opengl - 在 OpenGL 中附加 RenderDoc 时无法加载 Cg 着色器
- python - 我可以从 Google 存储 Blob 下载到 VM 作为 nd 阵列吗?
- ruby-on-rails - 正常情况下,Rails 处理为 JS,它处理为 HTML
- php - 如何修复 cURL 错误 28:操作在 90001 毫秒后超时,收到 0 个字节
- html - 无法在 IE11 浏览器的输入字段中看到输入的文本
- time-series - 如何理解 Facebook Prophet 预测趋势的分布概率?