初心者です。PHPとMYSQLでページにあいまい検索機能を作りたいと思っているのですが、検索フォームに入力しても画面が変わらず悩んでいます。エラー表示も出ないため、どこがおかしいのか分からず困っております。。
検索フォームに入力した文言で検索をして、同ページに検索結果を反映できるようにしたいです。
皆様のお知恵をお貸し頂ければ幸いです。
データベースのカラムは、
ID
username
mail
を設定しております。
下記コードです。
検索機能に何も入っていない時はeles if~の部分を表示し、検索機能に文字が入ったときはif~の部分の表示するようにしているつもりです。
●ファイル名【list.php】
<?php require_once("common.php"); $sql = "SELECT * FROM users ORDER BY id ASC;"; $stmt = $pdo->query($sql); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); if (isset($POST_['search'])) { $search = $POST_['search']; $search_value = $search; }else{ $search = ''; $search_value = ''; } $search_sql = "SELECT * FROM users WHERE username LIKE '%$search%' AND mail LIKE '%$search%' ORDER BY id ASC"; $search_stmt = array(); foreach ($pdo->query($search_sql) as $row) { array_push($search_stmt,$row); } ?> <!DOCTYPE html> <html> <head> 省略 </head> <body> <div id="search"> <form action="list.php" method="post"> <input type="text" name="search" value="<?php echo $search_value ?>""> <button id="sbtn" type="submit"></button> </form> </div><table style="border-collapse: separate"> <tr> <td class="id">ID</td> <td class="name">NAME</td> <td class="mail">MAIL</td> <td class="up">EDIT</td> <td class="dele">DELETE</td> </tr> <?php if (isset($POST_['search'])) { foreach ($search_stmt as $search_key): ?> <tr> <td class="id"><?php echo $search_key["id"]; ?></td> <td class="name"><?php echo $search_key["username"]; ?></td> <td class="mail"><?php echo $search_key["mail"]; ?></td> <td class="up"> <a href="update_form.php?id=<?php echo $search_key["id"]; ?>"> <i class="fas fa-file-alt"></i> </a> </td> <td class="dele"> <a href="delete.php?id=<?php echo $search_key["id"]; ?>"onclick="return confirm('このレコードを削除します。よろしいでしょうか?')"> <i class="fas fa-trash-alt"></i> </a> </td> </tr> <?php endforeach; ?> <?php }else { foreach ($result as $list): ?> <tr> <td class="id"><?php echo $list["id"]; ?></td> <td class="name"><?php echo $list["username"]; ?></td> <td class="mail"><?php echo $list["mail"]; ?></td> <td class="up"> <a href="update_form.php?id=<?php echo $list["id"]; ?>"> <i class="fas fa-file-alt"></i> </a> </td> <td class="dele"> <a href="delete.php?id=<?php echo $list["id"]; ?>"onclick="return confirm('このレコードを削除します。よろしいでしょうか?')"> <i class="fas fa-trash-alt"></i> </a> </td> </tr> <?php endforeach; ?> <?php } ?> </table> </div>
</body>
</html>回答1件
あなたの回答
tips
プレビュー