###やりたいこと
top画面の検索フォームでキーワードを入力して
そのキーワードを含むデータを表示させたい。
例:「カレー」を入力すると、DBからカレーのみ表示される
###現在の状態
環境:ローカル(MAMP)
php:5.6.10
DB情報
テーブル(kensaku)
カラム(message)
データ
カレー
パスタ
うどん
top.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>プラン一覧</title> <link rel="stylesheet" href="css/base.css"> </head> <body> <form action = "kensaku.php" method="post"> <input type="text" name="word"> <input type="submit" value="検索"> </form> </body> </html>
kensaku.php
<?php require('my_dbconnect.php');//DB接続 $KEY = mysql_real_escape_string($_POST['word']); $sql = "SELECT * FROM kensaku WHERE message LIKE '%$KEY%'";//SQL文作成 $recordSet = mysqli_query($db, $sql);//DBとSQL文を実行 while ($table = mysqli_fetch_assoc($recordSet)) { ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>検索結果</title> </head> <body> <?php while ($table = mysqli_fetch_assoc($recordSet)) { ?> <p><?php print(htmlspecialchars($table['message'])); ?></p> <?php } ?> </body> </html>
###確認できていること
- DB接続はできている
- top.htmlで入力したキーワードは以下のコードではカレーと表示されることは確認
$KEY = mysql_real_escape_string($_POST['word']); print($KEY)
- phpmyadminにて、LIKEの後をカレーと入力すれば、正常に表示されることは確認
SELECT * FROM kensaku WHERE message LIKE '%カレー%'
###聞きたいこと
上記の内容から、LIKEの後の変数が処理できていないと思っているのですが
どのように書けばいいのかわかりません。
何卒お助けいただきたいです。。。。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/05 13:21 編集