|
楼主 |
发表于 15-8-2019 09:54 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 15-8-2019 10:43 AM
|
显示全部楼层
悍马 发表于 15-8-2019 09:51 AM
我整理后这样尝试,结果:
1) 如果单单query status, return "Records Not Found"
2) 如果单单query area,正常操作
3) 如果单单query address, return "Records Not Found"
4) 如果单单que ...
可以看下你的input(提交的查询数据)是什么吗? |
|
|
|
|
|
|
|
发表于 15-8-2019 10:45 AM
|
显示全部楼层
我目前在菲律宾工作,本身是柔佛新山人。真的要有缘才能见面吃饭了~~呵呵
|
|
|
|
|
|
|
|
发表于 15-8-2019 10:47 AM
|
显示全部楼层
有兴趣的东西,不算是糟蹋吧~~顶多是折腾
|
|
|
|
|
|
|
|
发表于 15-8-2019 10:53 AM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 15-8-2019 02:13 PM
|
显示全部楼层
如何看到?我是直接在localhost/index.php提交
|
|
|
|
|
|
|
|
楼主 |
发表于 15-8-2019 02:17 PM
|
显示全部楼层
你的代码.....
$query = "SELECT $column FROM `$table_name` WHERE address LIKE '{$input['address']}%'";
.....是必须 where address like $address 才query 其他吗吗? |
|
|
|
|
|
|
|
发表于 15-8-2019 03:10 PM
|
显示全部楼层
就是你填入的数据
例如:
address: 11 JALAN IPOH 1
status: PENDING
area: KL
contact person: NAJIB
|
|
|
|
|
|
|
|
发表于 15-8-2019 03:12 PM
|
显示全部楼层
悍马 发表于 15-8-2019 02:17 PM
你的代码.....
$query = "SELECT $column FROM `$table_name` WHERE address LIKE '{$input['address']}%'";
.....是必须 where address like $address 才query 其他吗吗?
是啊,要在 $address 前后加通配符,像这样 %$address% |
|
|
|
|
|
|
|
发表于 15-8-2019 03:39 PM
|
显示全部楼层
<?php
//表单POST数据
$input = $_POST;
//表名
$table_name = 'tbl_name';
//表字段
$column = '*';
//查询语句
$query = "SELECT $column FROM `$table_name`";
$where = null;
if (!empty($input['address']))
{
$where = "WHERE";
$query .= " $where address LIKE '%".$input['address']."%'";
}
// 如果$input['contact_person']非空,$query串接查询语句。
if (!empty($input['contact_person']))
{
if (is_null($where))
{
$where = "WHERE";
}
else {
$where = "AND";
}
$query .= " $where contact_person='{$input['contact_person']}'";
}
// 如果$input['status']非空,$query串接查询语句。
if (!empty($input['status']))
{
if (is_null($where))
{
$where = "WHERE";
}
else {
$where = "AND";
}
$query .= " $where status='{$input['status']}'";
}
// 如果$input['area']非空,$query串接查询语句。
if (!empty($input['area']))
{
if (is_null($where))
{
$where = "WHERE";
}
else {
$where = "AND";
}
$query .= " $where area='{$input['area']}'";
}
|
|
|
|
|
|
|
|
发表于 15-8-2019 03:40 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 15-8-2019 05:07 PM
|
显示全部楼层
悍马 发表于 15-8-2019 02:17 PM
你的代码.....
$query = "SELECT $column FROM `$table_name` WHERE address LIKE '{$input['address']}%'";
.....是必须 where address like $address 才query 其他吗吗?
我的意思是说如果WHERE address LIKE '{$input['address']}%'放在第一行,如果user没有input $address呢?那么会因此没有query其他 criteria, return record not found 吗 ?
|
|
|
|
|
|
|
|
楼主 |
发表于 15-8-2019 05:12 PM
|
显示全部楼层
input by user
$status = "Sale"
$area = "GT"
$address like "Osman"
註 : 整个address 是 No 123, Jalan Osman, 11200, Penang。其他还有Jalan Osman 1, Jalan Osman 2, Solok Osman, Lintang Osman。 只要有Osman这个子就可以出来
|
|
|
|
|
|
|
|
楼主 |
发表于 15-8-2019 05:23 PM
|
显示全部楼层
也是一样
1) 如果单单query status, return "Records Not Found"
2) 如果单单query area,正常操作
3) 如果单单query address, return "Records Not Found"
4) 如果单单query status 和 area, 正常操作
5) 如果单单query status 和 address, return "Records Not Found"
6) 如果单单query area 和 address, 正常操作
7) 如果三个一起query, 正常操作
问题处在status 和 address
|
|
|
|
|
|
|
|
楼主 |
发表于 15-8-2019 05:25 PM
|
显示全部楼层
本帖最后由 悍马 于 15-8-2019 05:34 PM 编辑
整个代码是这样的,或许我有其他错误.................
<!doctype html>
<!DOCTYPE html>
<html>
<head>
<title>Filters in PHP</title>
<style>
table,tr,th,td
{
border: 1px solid black;
}
</style>
</head>
<body>
<div>
<h3>How to filter records using php</h3>
</div>
<div>
<h3>PHP Filters</h3>
<div>
<form action="index2.php" method="POST">
<div class="form-group">
<label>Owner</label>
<div>
<input type="text" name="contact_person" placeholder="Owner">
</div>
</div>
<p>
<div class="form-group">
<label>Status</label>
<div>
<input type="radio" name="status" value="SALE">Sale
<input type="radio" name="status" value="LET">Let
</div>
</div>
<p>
<div class="form-group">
<label>Area</label>
<div>
<select name="area" id="area">
<option>Area</option>
<option value="GT">Georgetown</option>
<option value="PT">Pulau Tikus</option>
<option value="AI">Air Itam</option>
<option value="TT">Tanjung Tokong</option>
<option value="BL">Bayan Lepas</option>
<option value="FL">Farlim</option>
</select>
</div>
</div>
<p>
<div class="form-group">
<label>Address</label>
<div>
<input type="text" name="address" placeholder="Address contains">
</div>
</div>
<p>
<div class="form-group">
<label></label>
<div>
<input type="submit" name="submit">
</div>
</div>
</form>
</div>
</div>
<div>
<table>
<tr>
<th>Owner</th>
<th>Status</th>
<th>Area</th>
<th>House No</th>
<th>Address</th>
<th>selling</th>
<th>rental</th>
<th>Property description</th>
</tr>
<tbody>
<?php
include("db.php");
if (isset($_POST['submit'])){
$status = $_POST['status'];
$area = $_POST['area'];
$address = $_POST['address'];
//表单POST数据
$input = $_POST;
//表名
$table_name = 'tbl_name';
//表字段
$column = '*';
//查询语句
$query = "SELECT $column FROM `$table_name`";
$where = null;
if (!empty($input['address']))
{
$where = "WHERE";
$query .= " $where address LIKE '%".$input['address']."%'";
}
// 如果$input['status']非空,$query串接查询语句。
if (!empty($input['status']))
{
if (is_null($where))
{
$where = "WHERE";
}
else {
$where = "AND";
}
$query .= " $where status='{$input['status']}'";
}
// 如果$input['area']非空,$query串接查询语句。
if (!empty($input['area']))
{
if (is_null($where))
{
$where = "WHERE";
}
else {
$where = "AND";
}
$query .= " $where area='{$input['area']}'";
}
$data = mysqli_query($conn, $query) or die('error');
if(mysqli_num_rows($data) > 0){
while($row = mysqli_fetch_assoc($data)){
$contact_person = $row['contact_person'];
$status = $row['status'];
$area = $row['area'];
$address = $row['address'];
?>
<tr>
<td><?php echo $row['contact_person'];?></td>
<td><?php echo $row['status'];?></td>
<td><?php echo $row['area'];?></td>
<td><?php echo $row['house_no'];?></td>
<td><?php echo $row['address'];?></td>
<td><?php echo $row['selling'];?></td>
<td><?php echo $row['rental'];?></td>
<td><?php echo $row['property_description'];?></td>
</tr>
<?php
}
}
else{
?>
<tr>
<td>Records Not Found!</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
</body>
</html> |
|
|
|
|
|
|
|
发表于 15-8-2019 05:33 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 15-8-2019 05:37 PM
|
显示全部楼层
如果单单query address like "Osman"不能 |
|
|
|
|
|
|
|
楼主 |
发表于 15-8-2019 05:40 PM
|
显示全部楼层
三个都一起query可以正常操作,但是单单address或单单status不能 |
|
|
|
|
|
|
|
楼主 |
发表于 15-8-2019 05:41 PM
|
显示全部楼层
欠你2杯咖啡了 |
|
|
|
|
|
|
|
发表于 15-8-2019 06:09 PM
|
显示全部楼层
本帖最后由 slaythia 于 15-8-2019 06:10 PM 编辑
<select name="area" id="area">
<option value="">Area</option>
<option value="GT">Georgetown</option>
<option value="PT">Pulau Tikus</option>
<option value="AI">Air Itam</option>
<option value="TT">Tanjung Tokong</option>
<option value="BL">Bayan Lepas</option>
<option value="FL">Farlim</option>
</select>
area dafault option value 要指定为空。
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|