php - 缺少 SELECT 语句的第一行

标签 php mysql

我有一个名为“模块”的数据库表,我试图从该表中选择所有行并将它们显示在表中。每行都有一个名为 MOrder 的列,范围从 1 到可用模块的数量。

这是我的代码:

    $sql_query = "SELECT * FROM Modules WHERE CourseID = ". $CourseID ." ORDER BY MOrder ASC";
    $result = mysqli_query($dbconfig, $sql_query);
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
    $count = mysqli_num_rows($result);

    echo '<div class="row">';
        echo '<div class="col-md-12">';
            echo '<table class="table">';
            if($count > 0) {
                $_SESSION['countMOrder'] = $count;

                echo '<tr>';
                    echo '<th>Module Title</th> ';
                    echo '<th></th>';
                echo '</tr>';
                while ($row = mysqli_fetch_array($result)) {
                    echo '<tr>';
                        echo '<td>'. $row['Title'] .'</td> ';
                        echo '<td><a href="user-view-module-revised.php?CourseID='. $row['CourseID'] .'&ModuleID='. $row['ID'] .'&MOrder='. $row['MOrder'] .'" title="Take Module" class="btn btn-success" id="'. $row['MOrder'] .'">Take Module</a></td>';
                    echo '</tr>';
                }
            }
            echo '</table>';
        echo '</div>';
    echo '</div>';
?>

但是,无论出于何种原因,该语句遗漏了 MOrder 1 的模块并且始终以 2 开头?

这是为什么?

最佳答案

您正在粘贴代码的第三行中调用 $row = mysqli_fetch_array($result, MYSQLI_ASSOC);,这将从结果中提取第一个数组。

然后,这将在您的 while 循环中被覆盖:

while ($row = mysqli_fetch_array($result)) { // <-- overwritten here with item 2
    //...
}

关于php - 缺少 SELECT 语句的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40082698/

相关文章:

php - 错误: Could not load database file mysql

mysql - SQL:如何进行条件 COUNT 和 SUM

mysql - SQL语法错误

php - 缓存 Doctrine 结果 Symfony2

php - 从键 1 开始内爆

PHP While 循环中的 While 循环

php - Laravel 5.5 - Eloquent - 从具有 "microseconds"字段的 MySQL 表中检索 "datetime(6)"

mysql - 什么时候最好使用逗号分隔值来展平数据以提高搜索查询性能?

c# - 如何在c# mysql中创建表的表

php - 从多个复选框和文本字段插入值