【问题标题】:Fetching data in mysqli, but showing less data在 mysqli 中获取数据,但显示的数据较少
【发布时间】:2018-11-14 09:31:21
【问题描述】:

我正在尝试从 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");

我的代码有什么问题还是我的数据库出错了?

【问题讨论】:

    标签: php database mysqli phpmyadmin


    【解决方案1】:

    您在下面的代码行中调用了两次。

    $data = mysqli_fetch_array($sql, MYSQLI_BOTH);
    

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

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 2011-05-06
      • 2021-08-28
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多