首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中使用While循环?

如何在PHP中使用While循环?
EN

Stack Overflow用户
提问于 2011-06-03 23:50:57
回答 4查看 752关注 0票数 1

我在使用最简单的代码时遇到了问题。由于某些原因,下面的代码只检索数据库中的第一行。我尝试了一次while循环,但它对我不起作用。下面是我的代码:

代码语言:javascript
复制
<?php


//Connect to the database
require_once('mysql_connect.php') ;

$query = "SELECT * FROM past_due_students WHERE charged_today = 'No' ORDER BY past_due_id" ;
$result = mysqli_query($dbc, $query) ;
$number_of_students = mysqli_num_rows($result) 

if ($number_of_students >= 1) {

    //Loop through the entire table
    while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {

        $student_id = $row['student_id'] ;
        $number_of_declines = $row['number_of_declines'] - 1;

        //Update the number of declines
        $query = "UPDATE past_due_students SET number_of_declines = $number_of_declines WHERE student_id = $student_id" ;
        $result = mysqli_query($dbc, $query) ;
        $number = mysqli_affected_rows($dbc) ;

        if ($number == 1) {

            echo '<p><b>The number of declines has been successfully updated.</b></p>' ;

        } else {
            echo $query ;
        }

    }//END while loop

}//END if ($number_of_students >= 1) {

?>

它只抓取第一行,而不抓取其他行。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-03 23:54:06

您正在覆盖$result的值

代码语言:javascript
复制
$query = "SELECT * FROM past_due_students....." ;
$result = mysqli_query($dbc, $query) ;

//Loop through the entire table
 while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {

    $query = "UPDATE past_due_students SET  ...." ;
    $result = mysqli_query($dbc, $query) ; <-- OVERWRITTING HERE.

使用不同的变量来保存内部查询结果对象。

票数 4
EN

Stack Overflow用户

发布于 2011-06-03 23:54:23

通过将下一个查询资源分配给同一个变量,您正在销毁从SELECT查询中获得的$result资源。

请为更新查询使用其他变量。

因此,请更改以下内容:

代码语言:javascript
复制
$query = "UPDATE past_due_students SET number_of_declines = $number_of_declines WHERE student_id = $student_id" ;
$result = mysqli_query($dbc, $query) ;

要这样做:

代码语言:javascript
复制
$query = "UPDATE past_due_students SET number_of_declines = $number_of_declines WHERE student_id = $student_id" ;
$updateResult = mysqli_query($dbc, $query) ;
票数 1
EN

Stack Overflow用户

发布于 2011-06-03 23:55:36

尝试使用其他变量名更改更新查询的$result

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6229469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档