検索ボックス内のif文の挿入について
解決したいこと
DBに接続して検索する検索ボックスを作成中です。
現状、検索ボックスに何も入っていない初期状態でも自動でDBに接続して検索結果を表示してしまいます。
(全件検索になってしまいます)
検索ボックスに何も入っていない初期状態では、DBに接続しないというif文というのはどのように書けばいいのでしょうか?
下記コード内の▲▲▲▲▲▲▲▲▲▲部分に、「自分で試したこと」に書いたようなコードが入ればいいのでしょうか?
(すみません。日本語でしか表現できずそのまま書いてしまっています)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://cdn.simplecss.org/simple.min.css">
<title>ナレッジ検索</title>
<style>
.s_button {
width: 120px;
height: 50px;
}
.top {
text-align: center;
}
</style>
</head>
<body>
<h2>ナレッジ検索</h2>
<form action="knowledge_box.php" method="post">
<table>
<tr>
<td>検索キーワード</td>
<td>
<input type="text" name="keyword" value="<?php echo $_POST['keyword']; ?>" required>
</td>
</tr>
</table>
<input type="submit" class="s_button" value="検索開始">
</form>
<?php
ini_set('display_errors', 'On');
▲▲▲▲▲▲▲▲▲▲
try {
// 接続
$pdo = new PDO('sqlite:qa');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$stmt = $pdo->prepare("SELECT * FROM qa WHERE detail LIKE ?");
$stmt->execute(array("%".$_POST['keyword']."%"));
$result = $stmt->fetchAll();
// 結果を確認
var_dump($result);
echo $result;
$counter = 1;
} catch (Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
?>
<h4>検索キーワードは「<?php echo $_POST['keyword']; ?>」です。</h4>
<table>
<tr>
<th>No.</th>
<th width="900" height="10" class="top">合致した内容</th>
</tr>
<?php foreach ($result as $row) {?>
<tr>
<td height="100"><?php echo $counter ++; ?></td>
<td><?php echo $row['detail']; ?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
自分で試したこと
<?php
if (検索ボックス(input type="text")が空白ならば){
DBに接続しない
} else {(値が入っていれば)
DBに接続する
}
?>
0