搜索数据库和复选框

时间:2014-02-02 12:27:09

标签: php mysql

我有这样的代码

   $query = $_GET['query']; 


$min_length = 0;


if(strlen($query) >= $min_length){ 

    $query = htmlspecialchars($query); 


    $query = mysql_real_escape_string($query);




       if(isset($_POST['option1']) && 
          $_POST['option1'] == 'Yes') 
         {
  $raw_results = mysql_query("SELECT * FROM users
    WHERE (type = 'hotel' ) AND ((`object` LIKE '%".$query."%') OR (`pass` LIKE '%".$query."%'))    ");
          }
            if(isset($_POST['option2']) && 
         $_POST['option2'] == 'Yes') 
          {
 $raw_results = mysql_query("SELECT * FROM users
    WHERE  (type = 'restaurant' )  AND((`object` LIKE '%".$query."%') OR (`pass` LIKE '%".$query."%')) ");
     } 
    else{
      $raw_results = mysql_query("SELECT * FROM users
    WHERE (`object` LIKE '%".$query."%') OR (`pass` LIKE '%".$query."%')   ");
             }

和表格

    <form action="results.php" method="post">
     <input type="checkbox" name="option1" value="Yes"> hotel<br>
     <input type="checkbox" name="option2" value="Yes" > restaurant

      <input type="submit" name="formSubmit" value="Submit" />
       </form>

我还使用'type'字段获得了Mysql数据库。但它不能100%正常工作。 当我使用搜索和我检查餐厅复选框时,我想只搜索餐馆,与“酒店”相同。但是没有选中字段的脚本搜索,只返回搜索的短语。你能看到任何错误吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

result.php:

   $query = $_GET['query']; 


$min_length = 0;


if(strlen($query) >= $min_length){ 

    $query = htmlspecialchars($query); 


    $query = mysql_real_escape_string($query);




       if(isset($_GET['option1']) && 
          $_GET['option1'] == 'Yes') 
         {
  $raw_results = mysql_query("SELECT * FROM users
    WHERE (type = 'hotel' ) AND ((`object` LIKE '%".$query."%') OR (`pass` LIKE '%".$query."%'))    ");
          }
            if(isset($_GET['option2']) && 
         $_GET['option2'] == 'Yes') 
          {
 $raw_results = mysql_query("SELECT * FROM users
    WHERE  (type = 'restaurant' )  AND((`object` LIKE '%".$query."%') OR (`pass` LIKE '%".$query."%')) ");
     } 
    else{
      $raw_results = mysql_query("SELECT * FROM users
    WHERE (`object` LIKE '%".$query."%') OR (`pass` LIKE '%".$query."%')   ");
   }

表格:

<form action="results.php" method="get">
 <input type="checkbox" name="option1" value="Yes"> hotel<br>
 <input type="checkbox" name="option2" value="Yes" > restaurant

  <input type="submit" name="formSubmit" value="Submit" />
   </form>

重要我没有测试过你的任何代码。当我看到您的代码时,我的第一个想法。建议更改Radiobox复选框,因为它是酒店或餐馆。将POST更改为GET。你一起使用GET和POST,这是不太可能的。我建议使用mysqli_ *或PDO连接数据库而不是折旧的mysql_ *函数。