PDOでの検索システムについて
プログラミング初学者です。
過去に検索システムを作る時にmysqlを使っていましたが、今回PDOを使った簡単な検索の仕組みを作ってみています。
実際に動作確認してみると検索結果で何もでず、var_dumpで確認してみるとNULLとなってしまいます。
いろいろ調べているのですが、PDOを使った場合の検索条件の部分の書き方がイマイチよくわかりません。
そしてだんだん深みにはまって迷走してしまっています。。。
アドバイスをいただけないでしょうか。
【検索フォーム(search.php)】
<form name="" method="POST" action="result.php">
<button type="submit" name="area" value="新宿">新宿</button>
</form>
【検索結果(result.php)】
define('DB_HOST', 'localhost');
define('DB_USER', 'ユーザー名');
define('DB_PASSWORD', 'DBパスワード');
define('DB_NAME', 'DB名');
try {
$dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME,DB_USER,DB_PASSWORD);
} catch (PDOException $e) {
echo $e->getMessage();
exit;
}
$sql= "select * from shop where area='" . $_POST["area"] . "' ";
$shop = array();
foreach ($dbh->query($sql) as $row) {
array_push($shop, $row);
}
?>
<body>
<?php foreach ($salon as $row) : ?>
<?php echo htmlspecialchars($row['area'],ENT_QUOTES,'UTF-8'); ?>
<?php echo htmlspecialchars($row['name'],ENT_QUOTES,'UTF-8'); ?>
<?php echo htmlspecialchars($row['station'],ENT_QUOTES,'UTF-8'); ?>
<?php endforeach; ?>
</body>
</html>
※
$sql= "select * from shop where area='" . $_POST["area"] . "' ";
の部分に原因があるのかと私は考えています。
$sql= "select * from shop;
とした場合は全件表示されるからです。
見難いコードで申し訳ありませんが、アドバイス頂ければ幸いです。
お礼
回答ありがとうございましたー