2012-04-26 7 views
0

私は基本的な検索スクリプトを作成しようとしています。多くの問題を抱えている。私は検索フォームと検索結果を別々の2ページにする必要があります。スクリプトが機能していません。PHP検索スクリプトを作成しようとしています

検索スクリプトが私をsearch_resultページに誘導していますが、入力は空です。

enter image description here

<html> 
<body> 

<form action="search_result.php" method="POST"> 
<input type="text" name="reg" /> 
<input type="submit" value="Search" /> 
</form> 

</html> 
</body> 

PAGE 2:

<html> 
<body> 


<?php 
$host="localhost"; 
$username="XXXXXXXXXXX"; 
$password="XXXXXXXXXXX"; 
$db_name="XXXXXXXXXXXX"; 
$tbl_name="reg_add"; 
mysql_connect("$host", "$username", "$password") or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 


$record = $_POST['record']; // if coming from e.g. a form 
$result=mysql_query(" SELECT * FROM reg_add WHERE reg='" . mysql_real_escape_string($record) . "'"); 


$row = mysql_fetch_assoc($result); 
$first_name = $row['first_name']; 
$last_name = $row['last_name']; 
$reg = $row['reg']; 
?> 



<input name="reg" value="<? echo "$record" ?>"> 

<input name="first_name" value="<? echo "$first_name" ?>"> 

<input name="last_name" value="<? echo "$last_name" ?>"> 

</body> 
</html> 
+2

は、それが動作しないのですか?エラー?実際の結果と期待される結果は何ですか? – Cfreak

+3

問題について有用なことは言わず、2つのスクリプトが接続されていないようです(最初はregキーで$ _GETに何かを提出し、2番目のスクリプトはレコードキーで$ _POSTに何かを期待しています) – mishu

+0

検索スクリプトは私をsearch_resultページに誘導していますが、入力は空です。 – Erik

答えて

1

あなたはそれが、$_POST['record']を探しているが、検索は非常に良いではないこと以外$_GET['reg']

を通過しているように」見えます正確なregが見つかった場合にのみそれを見つけるでしょう、それはあなたが必要とするものですか?

+0

はい。私は、主要なフィールドであるregを見つけるだけです。私はキーレコードに関連する約40の他のフィールドを持っています。 – Erik

+0

スクリプトを更新しましたが、動作しません。結果の写真を追加しました。 – Erik

+0

出力されていない場合、 '$ record'を設定することはできません。ここでもGETからPOSTに変更されていますが、フィールド名は 'record'ではなく' reg'です。ですから、$ record = $ _POST ['record'];行を '$ record = $ _POST ['reg'];に変更したことを確認してください; – Nick

1

HTMLフォーム送信メソッドがGETで、POSTメソッドで取得しようとしています。どちらかを変更し、フォーム要素のキー/名前属性もチェックしてください。どのような方法で `

<form action="search_result.php" method="POST"> 
<input type="text" name="record" /> 
<input type="submit" value="Search" /> 
</form> 
+0

スクリプトを更新しましたが、動作しません。結果の写真を追加しました。 – Erik

+0

あなたはあなたが投稿しているものを取得していません。更新されたコードはまだ間違っています。 ** reg **という名前のテキストフィールドの値を名前として送信する場合は、 '$ _POST ['reg']'を使って検索することができます。私が見ることができるのは '$ _POST ['record']'を使用していることです。私が投稿したフォームにあなたのフォームを置き換えてください。それはうまくいくはずです。正しいデータを取得した後、スクリプトに何も表示されていない場合は、クエリに問題があるか、レコードが存在しない可能性があります。最も簡単な方法は '$ _POST'です。' print_r($ _ POST); 'を使うだけです。 – SachinGutte

関連する問題