【问题标题】:PDO fetching the next row of database row by rowPDO 逐行获取数据库的下一行
【发布时间】:2025-12-31 01:40:11
【问题描述】:

有没有办法使用 PDO 逐行从数据库中获取下一行? 当我单击下一步按钮时,我正在尝试获取下一行数据 这是我的代码:

if($typeuser == 'admin'){
                        $dta = new PDO('mysql:host=localhost;dbname=laundry','root','');
                        $sta = $dta->prepare("SELECT * FROM konsumen");
                        $sta->execute();

                        $rowa = $sta->fetch();

                        $kode_pemesanan = $rowa['kode_pemesanan'];
                        $atas_nama = $rowa['atas_nama'];
                        $jmlhbaju = $rowa['jmlhbaju'];
                        $jmlhcelana = $rowa['jmlhcelana'];
                        $jmlhjaket = $rowa['jmlhjaket'];
                        $jmlhjas = $rowa['jmlhjas'];
                        $jmlhdress = $rowa['jmlhdress'];
                        $totalpesanan = $rowa['totalpesanan'];
                        $statuspesanan = $rowa['statuspesanan'];
                        $penguruspesanan = $rowa['penguruspesanan'];

                          print_r ("<table>
                                 <tr>
                                 <td>Kode Pemesanan</td><td>:</td><td>".$kode_pemesanan."</td></tr>
                                 <tr><td>Atas Nama</td><td>:</td><td>".$atas_nama."</td></tr>
                                 <tr><td>Jumlah Baju</td><td>:</td><td>".$jmlhbaju."</td></tr>
                                 <tr><td>Jumlah Celana</td><td>:</td><td>".$jmlhcelana."</td></tr>
                                 <tr><td>Jumlah Jaket</td><td>:</td><td>".$jmlhjaket."</td></tr>
                                 <tr><td>Jumlah Jas</td><td>:</td><td>".$jmlhjas."</td></tr>
                                 <tr><td>Jumlah Dress</td><td>:</td><td>".$jmlhdress."</td></tr>
                                 <tr><td>Pengurus Pesanan</td><td>:</td><td>".$penguruspesanan."</td></tr>
                                 <tr><td>Status Pesanan</td><td>:</td><td>".$statuspesanan."</td></tr>
                                 <tr><td>Total Pesanan</td><td>:</td><td>".$totalpesanan."</td>
                                 </tr></table>
                                 <br>
                                 <form method ='GET' action=''>
                                 <button type='submit' name='navigation' value='previous'>Previous</button>                      
                                 <button type='submit' name='navigation' value='next'>Next</button>
                                 </form>
                                 ");    



                        }

所以我在创建按钮后卡住了,我尝试使用 $_GET['navigation'] 但是当页面第一次加载时我收到错误未定义的索引导航,点击后它显示给我结果,我认为问题出在 fetch 上,所以我尝试 fetch() 两次,它显示了下一行但效率不高,有什么方法可以让我使用按钮来获取下一个一行一行的数据库行?

【问题讨论】:

    标签: php pdo


    【解决方案1】:

    您使用 while 循环,例如:

    while ($rowa = $sta->fetch()) {
        // Output contents
    }
    

    然后你需要引入分页,让它每页只显示X行,然后你可以点击next/prev链接查看下一批。

    Here's an in-depth answer I gave to another question about pagination

    【讨论】:

    • 所以我应该在我的数据库中添加 $id 以对我的行进行分页?
    • 不行,你需要从查询字符串中获取页码,然后使用SQL LIMIT START, COUNT。你是不是查分页会有很多这样的例子。
    • 好的,谢谢jamie,我正要试试你的线索,请问是否还有其他我无法解决的问题
    • @roger 我编辑了我的答案以链接到我以前的答案,该答案解释了分页的工作原理,希望这会有所帮助。
    • 非常感谢你的线索@jamie,你太酷了! ^^,但现在我卡在下一个和上一个按钮。