あなたが望むのはページネーションです。私はあなたにそれをググるように言い始めましたが、私が自分でやった後、それは価値がないほど多くの悪いアドバイスがあることがわかりました.
まず、mysql データベースに接続する最新の方法を使用する必要があります。これらのmysql_*
関数は PHP では推奨されておらず、セキュリティ リスクと見なされています。私は、多くの異なるデータベースへの一貫した優れたインターフェイスを提供するPDOを好みます。別のオプションはMySQLimysql_*
です。これは、関数に慣れている場合は少し簡単です
そこからは、クエリを制限して、スクリプトに返す値のグループを知らせるだけです。これが私のやり方です(これをテストしていないので、おそらくバグがあることに注意してください!出力とエラーの処理方法も決定する必要があります)
// Database connection stuff goes here
$start = $_GET['start'];
$per_page = 10; // or config value of your choice
// first find out how many you have
try {
$res = $dbh->prepare( "SELECT COUNT(*) FROM `images`" );
$res->execute();
}
catch(PDOException $e) {
// do something with errors!
}
list($count) = $res->fetch(PDO::FETCH_NUM);
$end = $start + $per_page;
if( $count < $end ) {
$end = $count;
}
// next and previous values. Just create links and these
// become the "start" parameter
$next = $end + 1;
$prev = $start - $per_page;
if( $prev < 0 ) {
$prev = 0
}
// now get the results
try {
$res = $dbh->prepare("SELECT * FROM `images`
ORDER BY `id` DESC LIMIT $start, $end");
$res->execute();
while( $image = $res->fetch(PDO::FETCH_ASSOC) ) {
// store or output the results
}
}
catch(PDOException $e) {
// do something with errors!
}
スクロール時に自動的に実行するには、jQuery を使用してスクロール イベントをチェックし、バックエンド コードを呼び出して、より多くの結果を自動的にロードします (呼び出しに $prev および $next の値を設定することにより)。