1

mysql_fetch_array を使用してデータベースからレコードを表示したい。しかし問題は、表示するレコードが多すぎるため、ページに表示するサイズを修正し、残りのレコードを次のページに移動する方法がわからないことです。

例: 最初の 10 行 (またはレコード) を page1 に表示し、次に別のページに別の 10 行を表示しますか?

これが私のコードです:

$result=mysql_query("$selectKL UNION $selectKlang UNION $selectPJ UNION $selectSJ 
ORDER BY restaurant_name LIMIT 6")

$searchQuery = search($budgetRange,$city,$category);

while($row = mysql_fetch_array($searchQuery))
{
   echo"<tr>";
   echo'<td>'.$row['restaurant_id'].'</b></td>';
   echo'<td>'.$row['restaurant_name'].'</b></td>';
   echo'<td>'.$row['category'].'</b></td>';
   echo'<td>'.$row['budget'].'</b></td>';
   echo'<td>'.$row['halal'].'</b></td>';
   echo "</tr>";
}

データベースから 30 件以上の結果が表示されますが、最初のページに最初の 10 件の結果を表示し、次のページに別の 10 件の結果を表示するにはどうすればよいですか? クエリで LIMIT を既に 10 に設定していますが、10 件の結果しか表示されませんが、残りの結果を保存または渡す方法がわかりません (可能ですか?)。助けていただければ幸いです...お願いしますか?

4

2 に答える 2

1

ページネーションは難しい場合があります。いくつかのパラメーター (おそらくクエリ文字列パラメーター) を設定して、ページネーションをどこで取得するかを知るのに十分な情報を示す必要があります。つまり、ページごとの結果の数とページ番号、または最後に表示された結果の数のいずれかです。 .

クエリでLIMIT x,yは、x は開始行番号、y は取得する行数を使用できます。

ページネーションは、何度も解決されてきた問題です。だからといって、それが簡単だというわけではありませんが、利用できるヘルプがたくさんあるということです。簡単な検索を試してください: https://encrypted.google.com/search?hl=en&q=php+mysql+pagination

于 2013-03-18T18:28:00.417 に答える
0
/*
    Place code to connect to your DB here.
*/


$tbl_name="xyz";        //your table name
// How many adjacent pages should be shown on each side?
$adjacents = 3;

/* 
   First get total number of rows in data table. 
   If you have a WHERE clause in your query, make sure you mirror it here.
*/
$query = "SELECT COUNT(*) as num FROM $tbl_name WHERE approved`=1  ";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages['num'];

/* Setup vars for query. */
$targetpage = "index.php";  //your file name  (the name of this file)
$limit = 5;                                 //how many items to show per page
$page = (!empty($_GET['page']) ? $_GET['page'] : null);

if($page) 
    $start = ($page - 1) * $limit;          //first item to display on this page
else
    $start = 0;                             //if no page var is given, set start to 0

/* Get data. */
$sql = "SELECT * FROM $tbl_name WHERE `approved`=1  ORDER BY `id` DESC LIMIT $start, $limit ";
$result = mysql_query($sql);

/* Setup page vars for display. */
if ($page == 0) $page = 1;                  //if no page var is given, default to 1.
$prev = $page - 1;                          //previous page is page - 1
$next = $page + 1;                          //next page is page + 1
$lastpage = ceil($total_pages/$limit);      //lastpage is = total pages / items per page, rounded up.
$lpm1 = $lastpage - 1;                      //last page minus 1

include ('includes/pagination.php');


    while($row = mysql_fetch_array($result))
    {

    //designate variables




echo  'Your content';
}
$pagination
于 2013-03-18T18:47:46.290 に答える