小编典典

使用单选按钮过滤搜索PHP PHP SQL

sql

我有一个搜索列表,可以正常工作。该搜索根据找到的单词是否与姓名,家庭和工作相似来进行。现在我想分开搜索。我的意思是,创建三个单选按钮。点击第一个按名称搜索,第二个按家庭搜索,第三个按职位搜索时。

所以我的基本代码在这里:

这里需要添加三个单选按钮。(searchform.php)

<form name="form1"  dir="rtl" method="post" action="searchresults.php">
<label for="search"> search </label>
<input name="search" type="text" size="40" maxlength="50" placeholder="you can search">
<input type="submit" name="submit" value="search"/> <br/>
</form>

搜索search在这里:

searchresult.php

<?php

   $db_host = 'localhost';
   $db_name= 'site';
   $db_table= 'tablesite';
   $db_user = 'root';
   $db_pass = '';


   $con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
mysql_query("SET CHARACTER SET  utf8");
$dbresult=mysql_query("SELECT tablesite.name,
                              tablesite.family,
                              job_list.job_name,
                       FROM  $db_table
                       INNER JOIN relation
                       on tablesite.id_user=relation.user_id
                       INNER JOIN job_list
                       on relation.job_id=job_list.job_id 
                       WHERE job_name LIKE '%".$_POST['search']."%' OR
 name LIKE '%".$_POST['search']."%' OR
 family LIKE '%".$_POST['search']."%'",$con);
?>
   <title>نتایج جستجو</title><fieldset class="fdex"  dir="rtl">
    <legend><span class="style4">نتایج جستجوی مشاغل</span></legend>

   <?php


   while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {

   printf("نام: %s   %s &nbsp&nbsp&nbsp شغل: %s &nbsp&nbsp&nbsp شماره تلفن: %s <br>", $row["name"], $row["family"], $row["job_name"], $row["phone_number"]);

}
?>

如您所见,在这种搜索方法中,当用户在搜索框中输入示例学校时,它将按学校查找可能是一个人的家庭的所有结果。所以,我需要将此搜索分为三个广播按钮。名字,第二家庭,第三份工作。


阅读 133

收藏
2021-04-19

共1个答案

小编典典

只需将单选按钮添加到窗体。

<form name="form1"  dir="rtl" method="post" action="searchresults.php">
<label for="search"> search </label>
<input name="search" type="text" size="40" maxlength="50" placeholder="you can search">
<input type="radio" name="search_type" value="job_name" checked="checked">Job<br>
<input type="radio" name="search_type" value="family">Family<br>
<input type="radio" name="search_type" value="name">Name
<input type="submit" name="submit" value="search"/> <br/>
</form>

并在您的sql查询中使用post字段和值。mysql已贬值,因此您应该使用mysqli,并且必须对输入进行转义以防止注入攻击。

$field = mysql_real_escape_string($_POST['search_type']);
$value = mysql_real_escape_string($_POST['search']);
$sql = "SELECT tablesite.name,
          tablesite.family,
          job_list.job_name,
   FROM  $db_table
   INNER JOIN relation
   on tablesite.id_user=relation.user_id
   INNER JOIN job_list
   on relation.job_id=job_list.job_id 
   WHERE 
   $field LIKE '%".$value."%'";
 $dbresult=mysql_query($sql,$con);

您可能还想在运行查询之前验证搜索值,并在遍历每一行之前检查结果。

2021-04-19