-1

私はまったくの初心者で、これらのフォーラムの 1 つに投稿するのはこれが初めてです。ですから、私が自分自身を適切に説明していない場合や、このような質問をすることになっていない場合は、私を許して、私に辛抱してください:)

基本的に、私は mysql データベースをセットアップしており、自分の Web サイトからデータを取り込むことができます。ドロップダウンからオプションを選択し、キーワードを入力できる基本的な検索オプションを作成しました。キーワードの部分を理解しましたが、ドロップダウン側の操作方法について少し混乱しています。インターネットで回答を検索しましたが、正しい用語を使用しているかどうかわからないため、この問題を解決するのが難しいと感じています.

以前に基本的なMYSQLデータベースを作成し、以前に機能させたことがあるので、問題は自動入力されたドロップダウンにあるとしか思えません。

説明させてください.....私は、ドロップダウンメニューとテキストボックスで構成されるフォームを含む「Search.php」というタイトルの想像上の検索ページを持っています(テキストボックスについて心配しないでください-正常に動作します)、ドロップダウン ボックスは MYSQL データベースから自動的に取り込まれ、フォームが送信されると、「Results.php」というタイトルの別のページに結果が表示されます。何らかの理由で、ドロップダウンの値が「結果」ページに渡されていないようです!

これが「検索」ページのドロップダウンボックスです。

<select name="Name" id="Name">
<option>Please select</option>
<?PHP
while($row = mysql_fetch_assoc($result))
{$dropdown .="\r\n<option value='{$row['Name']}'>{$row['Name']}</option>";}
echo $dropdown;
PHP?>

これはすべて正常に機能しているようで、MYSQL データベースから自動入力され、機能していることに満足しています。


「結果」のページはこちら。

<?php 
 mysql_connect('xxxxxxxxxxxx', 'username', 'password') or die(mysql_error()); 
 mysql_select_db("database") or die(mysql_error()); 

 $query = "SELECT * FROM Shirts WHERE Name = '$Name'" or die(mysql_error()); 
 $result = mysql_query($query) or die(mysql_error());  

 if(mysql_num_rows($result) > 0) {

 while($row = mysql_fetch_assoc($result))
 {
  echo ($row['Name']);
  echo "<br />";
  }
 }

Shirts = テーブル名 Name = テーブル内の列


何らかの理由で、これはデータベースの「空」フィールドのみを返すため、「検索」ページのドロップダウンボックスの値が「結果」ページに渡されていないと思います!!

4

2 に答える 2

1

これは、これをより明確にする上記のコードの一部が欠けていることを考えると、暗闇の中でのショットです..しかし、フォームから渡された値を実際に取得していないように見えます. これらの値は自動的には使用できません。それらを使用する前に取得する必要があります。

あなたが使用しているデータの受け渡し方法がわからないので、次のことを試してください。

$Name = $_REQUEST['Name'];

結果を生成するphpファイルの先頭に配置します。

$_REQUESTPOSTメソッドとの両方のデータが含まれているGETため、使用したメソッドに応じて機能するはずです。

ただし、この Web サイトが公開されていないことを切に願っています。非推奨の機能を使用しているだけでなく、インジェクション攻撃に対して脆弱です。

非推奨のmysql_*関数を使用する代わりに、 の使用方法を学ぶことをお勧めしますPDO。PDO の優れた機能の 1 つは、名前付きパラメーターを使用すると、クエリが自動エスケープされることです。

于 2012-09-27T23:31:59.393 に答える
1

htmlselectは、結果ページへのアクションを含むフォームにラップする必要があります。フォームでメソッドが指定されている場合はまたはのgetいずれかpostです。メソッド プロパティが指定されていない場合、デフォルトは ですget。の$_GET['Name']$_POST['Name']$Name

于 2012-09-27T23:32:49.810 に答える