While循环不会停止遍历数组

时间:2019-02-01 10:55:26

标签: php mysql loops while-loop

我有一个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循环,但是我不了解如何更改其中的条件,如果有人足够帮助我的话。

1 个答案:

答案 0 :(得分:0)

您的查询将为第一张表的每一行选择第二张表的所有行(您的选择将产生笛卡尔积)。

假设您的表通过键关联,例如:user_id,则应尝试加入

  SELECT * 
  FROM users u 
  INNER JOIN  transactions t  on u.user_id =  t.user_id 

通过这种方式,您应该只获得与特定user_id相关的交易