【发布时间】:2016-02-14 22:46:27
【问题描述】:
我想知道如何制作一个搜索表单,其中用户有 3 个选项可供搜索
- 按年龄搜索(下拉列表 18-25 和 26-40)
- 按性别(男性或女性)搜索
- 按名称搜索
在我的代码中,当我单击带有空白字段的“提交”时,它会将所有我不知道的数据扔给:
<?php
$output = NULL;
if (isset ( $_POST ['submit'] )) {
// Connect to database
$mysqli = new Mysqli ( "localhost", "root", "2222", "matrimonialPortal" );
$search = $mysqli->real_escape_string ( $_POST ['search'] );
// Query the databse
$resultSet = $mysqli->query ( "SELECT * FROM mp_user WHERE name LIKE '%$search%' OR email LIKE '%$search%' OR salutation LIKE '%$search%' OR id LIKE '%$search%'" );
if ($resultSet->num_rows > 0) {
while ( $rows = $resultSet->fetch_assoc () ) {
$name = $rows ['name'];
$email = $rows ['email'];
$output .= "::<strong>The Details of your search</strong> ::<br /> Name: $name<br /> Email:$email<br /><br /> ";
}
} else {
$output = "Oops No results Found!!";
}
}
?>
<!-- The HTML PART -->
<form method="POST">
<div>
<p>
Search By name: <input type="TEXT" name="search" /> <input
type="SUBMIT" name="submit" value="Search >>" />
</p>
</div>
<div>Search By Age :
<select name="age">
<option></option>
<option value="18-20">18-20</option>
<option value="20-25">20-25</option>
</select><input type="SUBMIT" name="submit" value="Search >>" />
</div>
<br />
<div>
Search By Gender:
<select name="salutation">
<option></option>
<option value="0">--- Male ---</option>
<option value="1">--- Female ---</option>
</select> <input type="SUBMIT" name="submit" value="Search >>" />
</div>
<br> <br>
</form>
<?php echo $output; ?>
【问题讨论】:
-
“抛出所有数据”是什么意思,您能澄清一下您的问题吗?
-
当您提交空白字段时,脚本会返回所有记录,因为您的 MySQL 查询 - 所有变量本质上都是空格,因此不会过滤任何内容。您可以为查询中返回的行添加限制,也可以添加执行不同查询的条件或根本不执行。