我有一个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循环,但是我不了解如何更改其中的条件,如果有人足够帮助我的话。
答案 0 :(得分:0)
您的查询将为第一张表的每一行选择第二张表的所有行(您的选择将产生笛卡尔积)。
假设您的表通过键关联,例如:user_id,则应尝试加入
SELECT *
FROM users u
INNER JOIN transactions t on u.user_id = t.user_id
通过这种方式,您应该只获得与特定user_id相关的交易