0

MySQLデータベースにクエリを実行するPHPスクリプトにデータを送信するhtmlフォームを備えた検索エンジンがあります。HTML フォームには、複数選択できるオプションがあります。これまで、HTML の名前の後に角かっこを付けて、配列にしました。しかし、結果が正しくないので、PHP に問題があると思います。

HTML

<select multiple="multiple" name='category[]'>
      <option>Literature</option>
      <option>History</option>
      <option>Science</option>
      <option>Fine Arts</option>
      <option>Trash</option>
      <option>Mythology</option>
      <option>Phylosophy</option>
      <option>Social Science</option>
      <option>Religion</option>
      <option>Geography</option>
  </select>

検索.php

$button = $_GET ['submit'];
$search = $_GET ['search'];

}

if(strlen($search)<=1)
echo "Search term too short";
else{
echo "You searched for <b><em>$search</em></b> and ";
mysql_connect("fake","fake","fake");
mysql_select_db("quinterestdb");}

mysql_real_escape_string($search);

$search_exploded = explode (" ", $search);

foreach($search_exploded as $search_each)
{
$x++;
if($x==1)
$construct .="Answer LIKE '%$search_each%'";
else
$construct .="AND Answer LIKE '%$search_each%'";

}

$cat = $_GET ['category'];
$comma_separated = implode("','", $cat);

$constructs ="SELECT * FROM tossups WHERE $construct AND Category IN('$comma_separated')";
$run = mysql_query($constructs);

検索エンジンを使用すると、スクリプトは正常に実行されますが、選択されていないカテゴリが含まれる結果がまだあります。何か案が?

4

1 に答える 1

2

そうではありません。VALUE を使用して、このようなものにする必要があります

<select multiple="multiple" name='category[]'>
      <option value="v1">Literature</option>
      <option value="v2">History</option>
...
  </select>
于 2013-06-17T06:42:33.253 に答える