PHP、MySQL、搜索查询中 HTML 表单的数组?

标签 php mysql arrays search-engine

我有一个带有 html 表单的搜索引擎,它将数据发送到 PHP 脚本来查询 MySQL 数据库。在 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);

当我使用搜索引擎时,脚本运行得很好,但仍然有一些结果具有未选择的类别。有什么想法吗?

最佳答案

事情不是这样的。应该是这样的,带有 VALUE

<select multiple="multiple" name='category[]'>
      <option value="v1">Literature</option>
      <option value="v2">History</option>
...
  </select>

关于PHP、MySQL、搜索查询中 HTML 表单的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17141597/

相关文章:

php - 如何在网站内构建群组? (管理员、管理员权限、用户身份)

mysql - 通信中的最后一条消息

arrays - i18next 渲染 JSON 数组

java - arraycopy中的空指针异常

mysql - 如何从 SQL 子查询返回数组?

php - 使用 PHP 将文本 append 到文本文档中的行

php - 如何从公用文件夹中获取图像文件作为 Laravel 中的响应?

mysqldump 导致 502 Bad Gateway

mysql - 使用 MySQL 连接四个表并从其中两个获取值

php - 如何使用 PHP 7 启用 MySQL