前提・実現したいこと
PHPでデータベースから条件に合ったデータのみを取得したい。
URLパラメータでタグの名前を指定し、条件に合致した列のデータを取得したいです。
http://localhost/html/Blog/searchTag.php?searchTag=プログラミング
発生している問題・エラーメッセージ
NULL
データベースからデータを取得できていないため、データが表示されないです。
該当のソースコード
PHP
1<?php 2require('dbconnect.php'); 3 4//URLパラメータで渡ってきたpage 5$tagName = $_REQUEST['searchTag']; 6 7//URLパラメータで渡ってきたpageがnullだったら 8if($page == ''){ 9 $page = 1; 10} 11//$pageが1より小さかったら$page=1 12$page = max($page,1); 13 14//dbからコメントの総数を取る 15$counts = $db->prepare('SELECT COUNT(*) AS cnt FROM article LIKE ? ORDER BY created DESC'); 16$counts->bindParam(1, $tagName, PDO::PARAM_STR, 12); 17//$cnt = $counts->fetch(); //SQLたたいたらfetch()する 18$cnt = $counts->execute(); 19$maxPage = ceil($cnt['cnt'] / 6); //切り上げ 20$page = min($page,$maxPage); //$page>$maxPageだったら $page = $maxPage 21 22//ページネーションの計算 23$start = ($page - 1)*6; 24//データベースから取得 25$searchTagArticles = $db->prepare('SELECT * FROM article LIKE ? ORDER BY created DESC LIMIT ?,6'); 26//LIKE ?に入るのはtagの名前である。 27$searchTagArticles->bindParam(1, $tagName, PDO::PARAM_STR, 12); 28//LIMIT ?,5の?に入るのはint型ではないといけないので型指定できるbindParam(1, $start, PDO::PARAM_INT)を使う 29$searchTagArticles->bindParam(2, $start, PDO::PARAM_INT); 30$searchTagArticles->execute(); 31 32?>
試したこと
$tagNameには文字列が代入されていることを確認しました。
補足情報(FW/ツールのバージョンなど)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/01/23 05:29