【问题标题】:While statement skips fist rowwhile 语句跳过第一行
【发布时间】:2017-11-12 15:28:40
【问题描述】:

我认为由于 if 语句,while 语句跳过了第一个。

但我需要 IF,我需要 WHILE。

这是我的代码:

            if($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)){
            while($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)){
                $antwoorden .= "".$row_antwoorden_select['naam']."".$row_antwoorden_select['methode']." <a href='".$row_antwoorden_select['url']."'>Open</a><br>";  
                $once_info = "<h4>Antwoorden:</h4>".$select_menu."<br>";
            }
        }

【问题讨论】:

  • 这是一个常见的错误。您是否正在运行if 来测试查询是否返回了行?这是不必要的,因为如果没有,while 循环将不会运行。您需要消除if。如果if 的用途与此代码明显不同,也许您可​​以改用mysqli_num_rows()。
  • 您的查询没有num_rows
  • 您不需要if,因为while 循环条件与每次迭代运行的if 相同。

标签: php database function if-statement while-loop


【解决方案1】:

看起来您的if 语句只是在检查查询是否有结果。如果这是真的并且您确实想保留 if 语句,您可以将其更新为使用 mysqli_num_rows() 代替:

if(mysqli_num_rows($results_antwoorden_select) > 0) {
    while($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)){
        $antwoorden .= "".$row_antwoorden_select['naam']."".$row_antwoorden_select['methode']." <a href='".$row_antwoorden_select['url']."'>Open</a><br>";  
        $once_info = "<h4>Antwoorden:</h4>".$select_menu."<br>";
    }
}

注意: 如果没有任何结果,mysqli_fetch_array() 将返回 null,因此从技术上讲,完全消除 if 块将使您的示例代码运行良好。

或者,如果您真的想要将mysqli_fetch_array() 保留在if 块中,则可以将循环更新为do/while:

if($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)) {
    do {
        $antwoorden .= "".$row_antwoorden_select['naam']."".$row_antwoorden_select['methode']." <a href='".$row_antwoorden_select['url']."'>Open</a><br>";  
        $once_info = "<h4>Antwoorden:</h4>".$select_menu."<br>";
    } while($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select));
}

【讨论】:

    【解决方案2】:

    您在if 语句中使用了$row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select),这是绝对错误的,因为您必须使用num_rows 函数检查表中可用的行数您应该尝试这样做可以解决您的问题

    if($results_antwoorden_select->num_rows > 0){
        while($row_antwoorden_select = mysqli_fetch_array($results_antwoorden_select)){
        $antwoorden = "".$row_antwoorden_select['naam']."".$row_antwoorden_select['methode']." <a href='".$row_antwoorden_select['url']."'>Open</a><br>";  
        $once_info = "<h4>Antwoorden:</h4>".$select_menu."<br>";
        }
    }
    

    【讨论】:

    • 请添加一些解释
    • 好吧,我来做吧
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 2011-02-22
    • 2014-07-13
    • 2013-01-16
    • 1970-01-01
    • 2019-10-19
    相关资源
    最近更新 更多