【发布时间】:2012-10-23 18:41:51
【问题描述】:
我正在尝试在我的献血者应用程序中创建搜索/过滤选项。可以按性别、姓名、血型或选择所有三项来搜索供体。这是我的代码
function search_donar($_POST) {
$by_name = $_POST['by_name'];
$by_sex = $_POST['by_sex'];
$by_group = $_POST['by_group'];
$by_level = $_POST['by_level'];
$search_query = "SELECT * FROM donar WHERE";
if($by_name !="") {
$search_query .= " name='$by_name'";
}
if($by_sex !="") {
$search_query .= " sex='$by_sex'";
}
if($by_group !="") {
$search_query .= " blood_group='$by_group'";
}
if($by_level !="") {
$search_query .= " e_level='$by_level'";
}
$search_query;
$result = mysql_query($search_query);
return $result;
}
这里是html
if(isset($_POST['submit'])) {
$retrived_result = $donar->search_donar($_POST);
}
<form action="" method="post">
<table width="100%" border="0" style="border:none;">
<tr>
<td><label>Name: </label><input type="text" name="by_name" /></td>
<td><label>Sex: </label><input type="text" name="by_sex" /></td>
<td><label>Blood Group: </label><input type="text" name="by_group" /></td>
<td><label>Level: </label><input type="text" name="by_level" /></td>
<td><input class="button" type="submit" name="submit" value="Search" /></td>
</tr>
</table>
</form>
单过滤效果很好。但是要过滤我使用的所有 AND ,但它给了我错误。任何人都可以帮忙吗?
提前致谢
【问题讨论】:
-
它会给你什么错误...?
-
请至少在使用
mysql_real_escape_string($_POST['by_name']);在数据库中搜索时转义您的数据强烈建议使用mysqli_*或PDO而不是mysql_* -
您的问题中的
$donar变量是什么?