みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHP+MySQLの「データを検索して表示する」について

名前を入れて検索すると、このように下記の様に表示されてしまいます。
Parse error: syntax error, unexpected '>' in C:\xampp\htdocs\list.php on line 52

検索フォームのsearch.phpは
<HTML>
<HEAD>
<TITLE>検索テスト</TITLE>
<META http-equiv="Content-Type" content="text/html;
charset=Shift_JIS">
</HEAD>
<BODY bgcolor="#FFFFFF"text="#000000">
<FONT size="4">検索テスト</FONT>

<FORM name="form1" method="post" action="list.php">
名前;<BR>
<INPUT type="text" name="search_key">
<BR>
<INPUT type="submit" value="検索">
</FORM>

</BODY>
</HTML>
です。



データ検索のlist.phpは
<HTML>
<HEAD>
<TITLE>検索テスト</TITLE>
</HEAD>
<BODY>

<?php
require_once("DB.php");

$dbUser = "sample";
$dbPass = "password";
$dbHost = "localhost";
$dbName = "sampledb";

$dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName";


$conn = DB::connect($dsn);

//接続にしっぱいしたらメッセージを表示して終了します。

if (DB::isError($conn)) {
die($conn->getMessage());
}


//POSTされたデータを受け取り、エスケープします。
$search_key =addslashes($_POST['search_key']);


$sql = <<<EOS
SELECT * FROM member

WHERE
last_name like'%$search_key%'
OR
first_name like'%$search_key%'

EOS;

if(preg_match("/Windows/",$_ENV["OS"])){
$sql = mb_convert_encoding($sql,"SJIS","EUC-JP");

}

$result = $conn->query($sql);
if (DB::isError($result)) {
die($result->getMessage());
}

$count = $result->numRows();
print"検索結果は".$count."件です。"<BR>";


if($count>0){
?>

<TABLE width="450" border="1" cellspacing="0" cellpadding="8">
<TBODY>
<TR><TH>番号</TH><TH>氏</TH><TH>名</TH><TH>年齢</TH></TR>


<?php
while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC))
{
if(preg_match("/Windows/",$_ENV["OS"])){
$rs['last_name'] = mb_convert_encoding(
$rs['last_name'],"EUC-JP","SJIS");
$rs['first_name'] = mb_convert_encoding(
$rs['first_name'],"EUC-JP","SJIS");
}
?>

<TR><TD align="center"><?=$rs['id']?></TD>
<TD><?=$rs['last_name']?></TD>
<TD><?=$rs['first_name']?></TD>
<TD align="center"><?=$rs['age']?></TD></TR>

<?php
}
$result->free();
$conn->disconnect();
?>

</BODY>
</HTML>
です。

「速効!図解プログラミングPHP+MySQL」を見ながら、その通りに書いたのですが動きませんでした。
XAMPPを使って作っています。
長々と失礼しましたが、どうか解決策を教えてください。
よろしくお願いします。

投稿日時 - 2007-12-06 15:43:17

QNo.3575866

すぐに回答ほしいです

質問者が選んだベストアンサー

エラーメッセージをよく読みましょう
list.php on line 52
list.phpの52行目が構文エラーだぜ! って言ってくれていますよ



print "検索結果は".$count."件です。"<BR>";

この部分、明らかに構文エラーです

print "検索結果は".$count."件です。<BR>";
こうですね。

投稿日時 - 2007-12-06 15:52:38

お礼

回答ありがとうございます。
あのメッセージは、間違えを教えてくれていたんですね。
構文をなおすと
DB Error: not found
と出ました。これは構文はあってるけどDBが見つからないって事なんですか?データベースは本を見ながら、下記のように作りました。

mysql> show fields from member;
+------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+----------------+
| id | mediumint(9) | NO | PRI | NULL | auto_increment |
| last_name | varchar(50) | YES | | NULL | |
| first_name | varchar(50) | YES | | NULL | |
| age | tinyint(3) unsigned | YES | | NULL | |
+------------+---------------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

MYSQLをインストールした後で、XAMPPをダウンロードしたのですが、それが原因なんでしょうか?

投稿日時 - 2007-12-06 16:54:23

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問