電子書籍の厳選無料作品が豊富!

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>

A 回答 (2件)

$sql = "select * from jugyou where kyouju like "*$name*" ";



$sql = "select * from `jugyou` where `kyouju` like '%{$name}%' ";
としてみてください。

ただし、'%・・・%'という書式はスピードを期待できません。
    • good
    • 0
この回答へのお礼

これでやったらうまくいきました!!
本当にありがとうございます。

お礼日時:2008/01/13 13:53

$sql = "select * from jugyou where kyouju like "*$name*" ";


ダブルクォーテーションが4つもあるので、おかしなことになっているような気がします。
*$name*
の前後のダブルクォーテーションをはずしてみては?

この回答への補足

"をはずしてもうまくいかなかったので他にも問題があるみたいです。

補足日時:2008/01/13 13:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!