4

mySQLデータベースから行を返すスクリプトを書き込もうとしています。基本的に、私のサイトのユーザーは「経験値」を受け取り、獲得した経験値の数に基づいて「ランク」を上げます。

「recentexp.php」というページがあり、最近のすべてのexpがテーブルに表示され、最新のものが一番上に表示されます。

より多くの結果が返されるより多くのページを作成するコードを作成するにはどうすればよいですか?

行数が10未満の場合、ページ番号はなく、ページ1のみが表示されます。ただし、12行が返される場合は、ページに最新の10行(最新のものが一番上)を表示してから、 PHPに、最も古い2つの行が配置されるページ「2」を作成させます。

これをひどく説明してしまったら、お詫び申し上げます。私は疲れ果てています..長い一日。

ありがとう!

4

1 に答える 1

11

の後に結果LIMIT x, yを表示するために使用できます。yx

$page他の手段を介して、または他の手段を介して渡される変数があるとし$_GETます。$pageデフォルトは1、またはページ番号を示す数値です。

次に、次の方法でそのページの行を選択できます。

SELECT * FROM `table` WHERE `condition` = ? LIMIT ($page - 1) * 10, 10

10は、ページあたりの結果の数に置き換えることができます。ご覧のとおり、ページ番号が1の場合、このクエリは次のようになります。

SELECT * FROM `table` WHERE `condition` = ? LIMIT 0, 10

最初の10件の結果が表示されます。ページ番号が2の場合、このクエリは次のようになります。

SELECT * FROM `table` WHERE `condition` = ? LIMIT 10, 10

これは、10行目以降の10行、つまり行11〜20(2ページにあるはずです!)を表示します。

于 2012-04-09T02:01:31.597 に答える