PHPの簡易データ検索プログラムを書いていますがページャーを使ったデー
PHPの簡易データ検索プログラムを書いていますがページャーを使ったデータ連動でうまくいかないところがあります。問題は1のデータ数取得がどのように2回(カウント+本検索)クエリを投げれば良いか判りません。どうかご教授いただきますようお願いします。
<?php
require_once "./rank/config.php";
require_once("Pager/Pager.php");
//【1】カウント用データベースに接続
$link = mysql_connect($server, $usr, $pass);
$db = mysql_select_db($mydb, $link);
$query = "SELECT COUNT(*) FROM detail WHERE category = '".$ID."'";
$count = mysql_query($query);
//【1】データ数の取得
$limit = $count;
$page = empty($_GET['p']) ? 1: $_GET['p'];
$offset = ($page - 1) * $limit;
// クエリ条件部分
$query = "SELECT * FROM detail";
$query .= " where 1";
$query .= " and category = '".$ID."'";
$query .= " limit {$limit} offset {$offset}";
$flag = true;
//MySQLデータベースに接続
if(!$link = mysql_connect($server, $usr, $pass)){
$flag = false;
}
//データベース選択
if(!$db = mysql_select_db($mydb, $link)){
$flag = false;
}
//lolipop用
mysql_set_charset("utf8");
//クエリ実行
if(!$result = mysql_query($query)){
$flag = false;
}
if(mysql_num_rows($result)==0){
echo 'データ件数は0件です';
}
$rows = mysql_num_rows($result);
if ($flag == true){
//メイン出力部
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
$list[] = array(category =>$row["category"],area=>$row["area"]);
}
}else{
echo 'データベース接続エラー';
}
echo "<b>", $rows, "</b>件HITしました<br />\n";
$params = array(
'mode' => 'sliding',
'perPage' => $limit,
'itemData' => $list,
'firstPagePre'=>'=',
"firstPageText"=>"TOP",
"firstPagePost"=>"=",
"lastPagePre"=>"=",
"lastPageText"=>"LAST",
"lastPagePost"=>"=",
);
$pager = & Pager::factory($params);
$navi = $pager->getLinks();
print($pager->numItems()."件中<br/>");
$scope = $pager->getOffsetByPageId();
print($scope['0']."件目から".$scope['1']."件目を表示 <br/>");
$ary = $pager->getPageData();
foreach ($ary AS $key => $value) {
echo "<br>□1<br>".$value["category"]."<br>";
echo "□2<br>".$value["area"]."<br>";
echo "<hr>";
}
echo $navi['all'];
//SQLの解放
mysql_free_result($result);
mysql_close($link);
?>