【问题标题】:While loop showing all dataWhile 循环显示所有数据
【发布时间】:2013-12-30 01:19:00
【问题描述】:

我一直在尝试让一个 php 脚本回显 mysqli 程序中的所有数据.. 我在网上搜索过,但我发现的只是如何使用面向对象的样式一一输出数组,我不能使用 fetch_all 函数,因为我的主机的 php 版本低于 5.3。我想知道如何让一个while循环遍历数据库并回显所有用户名和超过'0'的相应挂起点。

编辑: 'over 20' 弄错了,我的意思是 0

这是我目前所拥有的:

<?
    $submit = $_POST['submit'];
    if ($submit) {

        $result = mysqli_query($conn,"SELECT *                     
                               FROM members WHERE pendingpoints > 0    
                               ");
        $row = mysqli_fetch_array($result,             
                                  MYSQLI_ASSOC);

        while ($row = mysqli_fetch_array($result)) {
            printf ("%s (%s)\n", $row["username"],         
            $row["pendingpoints"]);
        }
    }
?>

【问题讨论】:

    标签: php loops


    【解决方案1】:

    将您的查询更改为

    SELECT * FROM members WHERE pendingpoints > 0
    

    那么,

    while ($row = mysqli_fetch_assoc($result))
    {
         echo $row['username'].' '.$row['pendingpoints'];
    }
    

    还要确保包含数据库连接文件。

    【讨论】:

    • 我使用了这个,但它只给了我 1 行的 1 个用户及其挂起点,但我想查看每个用户的列表,其中每个用户的挂起点超过 0 个
    • 哦,刚刚看到您的编辑。然后将 20 更改为 0,这将显示每个用户。确保您的数据库实际上有多个用户,且挂起点数超过 0
    • ^,如果这不起作用,请尝试删除 WHERE 语句以进行调试。这应该会打印出整个数据库的用户名和积分。
    • 嗯,这很奇怪。它似乎跳过了我的第一个用户,它有 20 个待处理点,但它适用于其余用户
    • 嗯。奇怪的。这很奇怪,但进入 PHPmyadmin 并重新输入值 20。只是为了确保
    【解决方案2】:

    您当前的 MySQL 语句发现 'pendingpoints' 高于 0。您想要 20,而不是 0。

    【讨论】:

    • 小错误,我的意思是超过 0
    • 这篇文章应该是评论,而不是答案。请删除。无论如何,这个问题现在已经解决了。
    猜你喜欢
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多