を追加しようとすると、指定したboolean、パラメータ1は資源であることを期待:sqlsrv_has_rows()私は私のデータに改ページを追加しようとしているが、このようなエラーがあるページネーション機能
sqlsrv_has_rows() expects parameter 1 to be resource, boolean given
しかし、
私はそれについて考えていませんが、私は既にページネーションのための別の方法を試しましたが、結果はまだ同じです。なぜこれが起こったのですか?誰かが私にそれを説明し、修正するのを手伝ってもらえますか?まず、はっきりsqlsrv_query()
はエラーが生じている
<tbody>
<?php
//pagination
$sqlcount = "SELECT COUNT(id_pelanggaran) FROM pelanggaran";
$rscount = sqlsrv_has_rows(sqlsrv_query($conn,$sqlcount));
$totaldata = $rscount[0];
$page = isset($_GET['page']) ? $_GET['page']:1;
$limit = 50;
$start = $limit * ($page-1);
// Data Source
$query = "SELECT
dbo.pelanggaran.id_pelanggaran,
dbo.pelanggaran.waktu_pelanggaran,
dbo.pelanggaran.nama_pelanggar,
dbo.pelanggaran.bukti_screenshot,
dbo.pelanggaran.bukti_rekaman,
dbo.pelanggaran.bukti_dokumen,
dbo.jenis_pelanggaran.pelanggaran,
dbo.daftar_outlet.nama_outlet
FROM
dbo.pelanggaran
INNER JOIN dbo.jenis_pelanggaran ON dbo.pelanggaran.id_jenis_pelanggaran = dbo.jenis_pelanggaran.id
INNER JOIN dbo.daftar_outlet ON dbo.pelanggaran.id_lokasi_outlet = dbo.daftar_outlet.id
WHERE
dbo.pelanggaran.id_jenis_pelanggaran = dbo.jenis_pelanggaran.id ORDER BY id_pelanggaran ASC LIMIT $start,$limit";
$result = sqlsrv_query($conn,$query);
if (sqlsrv_has_rows($result) > 0) {
while ($data = sqlsrv_fetch_array($result)){
?>
<tr>
<?php echo "<td>" . $data['id_pelanggaran'] . "</td>"; ?>
<?php echo "<td>" . $data['waktu_pelanggaran'] . "</td>"; ?>
<?php echo "<td>" . $data['nama_pelanggar'] . "</td>"; ?>
<?php echo "<td>" . $data['pelanggaran'] . "</td>"; ?>
<?php echo "<td>" . $data['nama_outlet'] . "</td>"; ?>
<?php echo "<td>" . $data['bukti_screenshot'] . "</td>"; ?>
<?php echo "<td>" . $data['bukti_rekaman'] . "</td>"; ?>
<?php echo "<td>" . $data['bukti_dokumen'] . "</td>"; ?>
<td class="text-center">
<button class="btn btn-sm btn-primary" type="button" name="button">Edit</button>
</td>
<td>
<button class="btn btn-sm btn-danger" type="button" name="button">Del</button>
</td>
</tr>
<?php
}
}
?>
</tbody>
それは、私はPHPスクリプトの先生ではなくSQLスクリプト経由でページネーションを行わなければならないということですか?あるいは、SQL関数を変更してPHPスクリプトの作業を続けますか?詳細を教えてください。 –
@ DonnyK.Pratama:あなたのページングは、あなた次第です。結果セット全体を要求し、アプリケーションコードで必要な "ページ"にフィルタリングするのではなく、実際に必要なデータだけをデータベースから要求することをお勧めします。どのように*あなたのページングロジックを定義するかは別の話です。クエリに 'LIMIT'句を追加することで、データベースから結果をページするように見えます。しかし、それはあなたがSQL Serverでそれを行う方法ではありません。それを行うための他の戦略があります。リンクされた質問は、いくつかを探求するのに良い場所です。 – David
大丈夫、私は今、理解していただきありがとうございます! :)) –