Skip to content

Instantly share code, notes, and snippets.

@mochi5o
Last active October 19, 2019 15:05
Show Gist options
  • Save mochi5o/1f8936686efc8a5a59a70d13474b80a0 to your computer and use it in GitHub Desktop.
Save mochi5o/1f8936686efc8a5a59a70d13474b80a0 to your computer and use it in GitHub Desktop.
PHPだけでDBからの検索を実行する
<?php
include('functions.php');
$pdo = connectToDb();
$keyword = $_POST["keyword"];
if (isset($keyword)) {
// echo 'キーワード入力OK';
// 実際にはPOSTデータを直接SQLに入れるこういうやり方はしない(脆弱性の問題。詳しくは課題のコメント参照ください)
$sql = "SELECT * FROM gs_bm_table WHERE name LIKE '%" . $keyword . "%'";
$stmt = $pdo->prepare($sql);
$status = $stmt->execute();
var_dump($status); // $statusがtrueじゃなかったら値が取れてないかどこかでエラー
$array = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
array_push($array, $row);
}
// var_dump($array);
}
?>
<html>
<head>
<title>本の検索</title>
</head>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="index.php">一覧</a>
</li>
</ul>
<body>
<form action="" method="post">
キーワード:<input type="text" name="keyword" value="<?php echo $_POST['keyword'] ?>"><br>
<input type="submit">
</form>
<table>
<tr>
<th>本の名前</th>
</tr>
<?php foreach ($array as $key) : ?>
<tr>
<td><?php echo $key['name'] ?></td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
@mochi5o
Copy link
Author

mochi5o commented Oct 19, 2019

  • 通常は同一ページ内での再レンダリングの実装ならajaxで実装するところだと思います
  • 今回は課題チェックのためにとりあえず書いてみました

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment