現在、次のようなクエリがあります。
$queryMovies = "SELECT
m.movieID,
n.title,
m.directorID, d.directorFirstName, d.directorLastName,
m.runTime,
m.yearReleased,
m.synopsis,
m.formatID, f.format,
FROM movies m
LEFT JOIN directors d ON d.directorID = m.directorID
LEFT JOIN format f ON f.formatID = m.formatID
ORDER BY title";
結果は次のように jQuery の $.ajax 呼び出しに送り返されます。
$arr = array();
while($row = mysqli_fetch_array($resultMovies, MYSQLI_ASSOC)) {
$arr[] = $row;
}
header('Content-Type: application/json');
echo json_encode($arr);
$.ajax 呼び出しの成功関数は、次のようなデータを処理します。
...
'<div class="synopsisCell">' +
'Synopsis<br />' +
'<label class="lblSynopsis">' + element['synopsis'] + '</label>' +
'</div>' +
'<div class="formatCell">' +
'<label class="lblFormat">' + element['format'] + '</label>' +
'</div>' +
'<div class="yearCell">' +
'<label class="lblYear">' + element['yearReleased'] + '</label>' +
'</div>' +
...
(ご覧のとおり、これは完全な出力の不完全なスニペットです)
データが配置されるテーブルにページネーションを追加する必要がありますが、これを処理する最善の方法がわかりません。(これまでページネーションのプログラミングを行ったことはありません)
(ページ数を決定するために)レコード数を取得する別のクエリを追加し始めましたが、ページネーションなどのレコードの開始と数で LIMIT 句を実行する必要があることに気付きました。
この時点で、次の2つのことを疑問に思っています。
A) 何らかの方法でレコード数を既存のクエリ/リターン コードに追加できますか。これを jQuery 側で使用して、ページネーション ナビゲーション (ページ番号と次/前/最初/最後のページ リンク) を構築できます。
また:
B) JSON オブジェクトから何らかの方法でレコード数を取得し、テーブルに表示する結果のセット (たとえば、20 レコードのセット) のみを表示することにより、JS 側でページネーションを完全に処理できますか?
また、ユーザーがページネーション ナビゲーション リンクをクリックしたときに、毎回クエリを再実行する必要がありますか、または過度のサーバー/データベース クエリを回避するために、おそらく JS にその情報を「保存」する方法がありますか?
私は特定のコーディングを探しているのではなく、正しい方向に進むための疑似コードを探しているだけです。
誰の助けにも感謝します。