在mysqli中获取数据,但显示较少的数据

时间:2018-06-05 01:40:03

标签: php database mysqli phpmyadmin

我正在尝试从mysqli查询中获取数组,但显示的结果未完成。它总是显示减1数据。例如,我在数据库中有数据,1a,2b,3c,4d,5e,6f,7g,8h,9i和10j,当我使用时:

<?php
    $sql = mysqli_query($connection, "SELECT * FROM soal LIMIT 0,10");
    $data = mysqli_fetch_array($sql, MYSQLI_BOTH);
?>

<table>
    <tr>
       <th>#</th>
       <th>Text</th>
    </tr>

    <?php
        $i = 1;
        while($data = mysqli_fetch_array($sql,MYSQLI_BOTH)){
    ?>
        <tr>
            <td><?php echo $i; ?></td>
            <td><?php echo $data['soal']; ?></td>
        </tr>
    <?php
        $i++;
        }
    ?>

</table>

结果只显示2b,3c,4d,5e,直到10j,但如果我使用UNION,结果将显示1a,2b,3c,4d,5e,直到9i:

$sql = mysqli_query($connection, "SELECT 'a' as id, 'b' as soal, 'c' as mapel_id, 'd' as kelas_id, 'e' as jawaban_a, 'f' as jawaban_b, 'g' as jawaban_c, 'h' as jawaban_d, 'i' as jawaban_benar UNION SELECT id, soal, mapel_id, kelas_id, jawaban_a, jawaban_b, jawaban_c, jawaban_d, jawaban_benar FROM soal LIMIT 0,10");

我的代码有什么问题,或者我的数据库出错了吗?

1 个答案:

答案 0 :(得分:0)

你在两行代码下面打电话。

$data = mysqli_fetch_array($sql, MYSQLI_BOTH);

删除第一个电话。因为下次调用同一行代码时将从db调用中的下一个位置开始,而不是从初始位置开始。

希望它有所帮助。