根本的にページャ?の仕組みがよくわかっていないですが、少し急いでいるため質問させていただきます。
順序としまして
① データベースにPDO接続する
② HTMLのformから入力された値とSELECT文のWHERE句を組み合わせて検索する。
③ 出力する
質問内容
③で出力された行数をカウントし、1ページごと10行にしたいです。
LIMIT句を使った制限(0~10行まで)とか
≪前へ | 次へ ≫ を出力するようなところまではできてます。
次へを押した際になにも表示されないので、どうしていいやら。
お詳しい方是非ご回答願います。
また、なにか参考になるサンプル等ありましたら教えていただきたいです。
現状
/-------------------------------------------------------/
~省略~
$query = "SELECT SQL_CALC_FOUND_ROWS * FROM {$table_name} WHERE " . join(" OR ", $where);
$stmt = $pdo->prepare($query);
foreach($target_columns as $index_column => $column){
foreach($keywords as $index_keyword => $keyword){
if(!$stmt->bindValue(":keyword{$index_column}_{$index_keyword}", "%{$keyword}%")) {
exit("Failed to bind value: " . $keyword);
}
}
}
$stmt->execute();
//行数の値を取得。executeのあとで取得可能。
$stmt2 = $pdo->query("SELECT FOUND_ROWS()");
$ret = $stmt2->fetch();
$hogehoge = $ret['FOUND_ROWS()'];
print($hogehoge."件がヒットしました"."<br>");
if ($stmt->execute()) {
if(2 < $hogehoge){ $Size=sizeof($hogehoge); $P = $_GET["p"]; if($P>0){ $Prev=$P-1; $PrevPage="<a href='index.php?p={$Prev}'>前 </a>"; } if($Size/10-1>$P){ $Next=$P+1; $NextPage="<a href='index.php?p={$Next}'> 次</a>"; }
//データベースの項目「備考欄」出力
while($col = $stmt->fetch(PDO::FETCH_ASSOC)){
print($col['備考欄']); } } }
}
?>
<form action="" method="post"> <p><input type="search" name="search" size="30" maxlength="255"placeholder="Search..."> <input type="submit" value="検索"></p></form> </body><p> <input type="checkbox" name="search2" id="h_ac_i12" value="12"> <label for="h_ac_i12">熱海市</label> </p>