- ベストアンサー
PHPからMySQLへの検索
PHPからデータベースの検索について勉強をはじめたばかりで初歩的な質問かと思いますが過去ログを読んでも解決しなかったため質問いたします。 たとえばデータベースに教授名や授業名などを収納しておいてPHPで教授名を入力すると授業名等が表示されるようにするスクリプトを作ろうと思っているのですがうまくいきません。 少なくともMySQLで『田中』という教授名は入っているので検索すれば出てくるはずなのですが検索件数が0件になってしまいます。 テキストボックスに入力された情報を受け渡すところに原因がある気がするのですが原因はわかりませんでした。 おわかりになりましたらご教授ください http://iskiso3.hustle.ne.jp/test.php <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>テスト</title> </head> <form action="test.php" method="post"> 教授名を入力してください<br> <input type="text" name="namae" size="30"> <input type="submit" value="送信"> </form> <body> <?php $name = $_POST['namae']; $con = mysql_connect("mysql3.naid.jp" , "ID" , "PASS") or die ('DB Connection Error= '. mysql_error()); mysql_select_db("iskiso3", $con) or die ('DB Connection Error= '. mysql_error()); $sql = "select * from jugyou where kyouju like "*$name*" "; $result = mysql_query($sql,$con); if ( $result == $FALSE ) { die("Search Result: 0 items"); } $num = mysql_num_rows($result); print "<table><tr><td>科目名</td><td>教授名</td><td>内線</td></tr>"; for ($i=0; $i<$num; $i++) { $r = mysql_fetch_row($result); print "<tr><td>$r[0]</td><td>$r[1]</td><td>$r[2]</td></tr>"; } print "</table>"; ?> </body> </html>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
$sql = "select * from jugyou where kyouju like "*$name*" "; を $sql = "select * from `jugyou` where `kyouju` like '%{$name}%' "; としてみてください。 ただし、'%・・・%'という書式はスピードを期待できません。
その他の回答 (1)
- ka-kichi
- ベストアンサー率59% (22/37)
$sql = "select * from jugyou where kyouju like "*$name*" "; ダブルクォーテーションが4つもあるので、おかしなことになっているような気がします。 *$name* の前後のダブルクォーテーションをはずしてみては?
補足
"をはずしてもうまくいかなかったので他にも問題があるみたいです。
お礼
これでやったらうまくいきました!! 本当にありがとうございます。