検索結果のページング、2ページ以降ができずに悩んでいます。
現状、index.phpで検索した内容をsearch.phpにPOSTして表示しています。
search.phpの2ページ目以降POSTしていないため、
下記のようなエラーが起きてしまいます。
どのようにすればエラーが起きずに、実装出来る方法があるのでしょうか?
php
1Notice: Undefined index: key in C:\xampp\htdocs\bbs\search.php on line 12
宜しくお願いします!
php
1//config.php 2<?php 3define('DSN', 'mysql:dbname=bbs;host=localhost'); 4define('USER', 'root'); 5define('PASSWORD', ''); 6define('NAME_PER_PAGE', 16);
php
1 2<?php 3//search.php 4$key=htmlspecialchars($_POST['key']); 5require_once('./config.php'); 6 7$dbh = new PDO(DSN, USER, PASSWORD); 8$dbh->query('SET NAMES utf8'); 9 10 11if (isset($_GET['page']) && $_GET['page'] > 0) { 12$page = (int)$_GET['page']; 13}else{ 14 $page = 1; 15} 16 17$offset = NAME_PER_PAGE * ($page - 1); 18 19$sql = "SELECT * FROM user Where id LIKE '%{$key}%' or comment LIKE '%{$key}%' order by time desc limit ".$offset.",".NAME_PER_PAGE; 20$stmt = $dbh->query($sql); 21$records = $stmt->fetchAll(PDO::FETCH_ASSOC); 22 23$total = $dbh->query("select count(*) from user Where id LIKE '%{$key}%' ")->fetchColumn(); 24$totalPages = ceil($total / NAME_PER_PAGE); 25?> 26 27//検索結果表示 28 29 30//前へ 次へ 31<?php if($page > 1) : ?> 32<li><a href="?page=<?php echo $page-1; ?>">前へ<span aria-hidden="true">≪</span></a></li> 33<?php endif; ?> 34 35<?php for($i = 1; $i <= $totalPages; $i++) : ?> 36 <?php if ($page == $i) : ?> 37 <li class="active"><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a></li> 38 <?php else: ?> 39 <li><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a></li> 40 <?php endif; ?> 41<?php endfor; ?> 42<?php if($page < $totalPages) : ?> 43<li><a href="?page=<?php echo $page+1; ?>">次へ<span aria-hidden="true">≫</span></a></li> 44<?php endif; ?>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。