我有一个有效的搜索列表。搜索的工作原理是查找搜索词是否如姓名、家庭和工作。现在我想把这个搜索分开。我的意思是,创建三个单选按钮。单击第一个按钮按姓名搜索,单击第二个按钮按家庭搜索,单击第三个按钮按工作搜索。
所以我的基本代码在这里:
这里需要添加三个单选按钮。 (搜索表单.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>
搜索代码在这里:
搜索结果.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     شغل: %s     شماره تلفن: %s <br>", $row["name"], $row["family"], $row["job_name"], $row["phone_number"]);
}
?>
如您所见,在这种搜索方法中,当用户在搜索框中输入例如学校时,它会按学校查找可能是一个人的家庭的所有结果。所以我需要将此搜索分成三个单选按钮。第一个名字,第二个家庭,第三个工作。
只需将单选按钮添加到表单即可。
<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);
您可能还想在运行查询之前验证搜索值,并在循环每一行之前检查结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)