php - 如何结合搜索框和下拉菜单来输出结果(php、mysql)

标签 php mysql search query-string

我创建了一个 HTML 表单,其中包含一个搜索框和一个包含美国 50 个州的下拉列表。我想要的是让用户在搜索框中输入关键字(电子邮件、主题、用户名等),然后从下拉列表中选择一个状态。通过从下拉列表中选择一个状态,我希望我的 PHP 代码仅在该选定状态下从搜索框中查找关键字。例如,作为用户,我想在华盛顿州查找“足球”并查看结果列表。

换句话说,如何仅在选定状态下与我的搜索表单结合显示结果?

这里是我的一些 PHP 代码,可以让大家了解我想要完成的任务。

// this is pulling the text that was typed in the html search box
$searchbox = $_POST['searchbox'];

// this is pulling the state from my HTML drop down menu
$state = $_POST['state'];

$searchboxresult = mysql_query("
  SELECT *
  FROM   table
  WHERE (ID      LIKE '%".$_POST['searchbox']."%')
     OR (stateID LIKE '%".$_POST['searchbox']."%')
     OR (city    LIKE '%".$_POST['searchbox']."%')
     OR (subject LIKE '%".$_POST['searchbox']."%')
     OR (email   LIKE '%".$_POST['searchbox']."%')
     OR (posting LIKE '%".$_POST['searchbox']."%')
     OR (skill   LIKE '%".$_POST['searchbox']."%')
     OR (event   LIKE '%".$_POST['searchbox']."%')
     OR (days    LIKE '%".$_POST['searchbox']."%')
     OR (url     LIKE '%".$_POST['searchbox']."%')
");

// and

$statedropdownresult = mysql_query("
  SELECT * FROM table WHERE stateID LIKE '%$state%'
");

然后我有一个 while 循环来搜索所有内容并输出数据。但我无法让状态下拉来限制用户正在搜索的内容。我只能让一个或另一个 mysql_query 与我的 while 循环结合使用,而不是两者都结合使用。由于某种原因,使用 AND 将查询合并为一个查询似乎也不起作用。有什么想法吗?

我知道代码很草率并且存在安全问题,但是我稍后会进行清理。如果您需要更多细节或澄清某些事情,我很乐意详细说明!

最佳答案

你可以尝试这样的事情:-

$sql ="SELECT * FROM table WHERE 1";

if($_POST['searchbox'] != ''){
     $sql =" and (ID LIKE '%".$_POST['searchbox']."%') OR (stateID LIKE              
     '%".$_POST['searchbox']."%') OR (city LIKE '%".$_POST['searchbox']."%') OR   
     (subject LIKE '%".$_POST['searchbox']."%') OR (email LIKE  
     '%".$_POST['searchbox']."%') OR (posting LIKE '%".$_POST['searchbox']."%') OR  
     (skill LIKE '%".$_POST['searchbox']."%') OR (event LIKE  
     '%".$_POST['searchbox']."%') OR (days LIKE '%".$_POST['searchbox']."%') OR (url  
     LIKE '%".$_POST['searchbox']."%')";
}
if($state != ''){
    $sql .= " and stateID LIKE '%".$state."%'";
}

  mysql_query($sql);

希望这有帮助。

关于php - 如何结合搜索框和下拉菜单来输出结果(php、mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10527436/

相关文章:

php - 无法在 PHP shell_exec() 中运行 "cd"命令

php - 在 PHPMyAdmin 中检索已删除的数据库

php - 有没有办法测试闭包是否也是生成器?

mysql - 如何在多个条件下进行更新

java - 通过 ssl 将 springboot 应用程序与 mysql 服务器连接起来

php - 按日期时间显示来自多个表的数据

php - 尝试创建一个点击图片进行考勤的考勤系统。

html - 是否有易于使用的软件来突出显示文本中的多个关键字并显示每个匹配项的计数?

PHP MYSQL : search word query

search - 解决方案+遗传