如何获得多页搜索输入php mysql

时间:2015-09-02 06:32:33

标签: php

嗨,我是php mysql的新手。我创建了一个用户可以搜索数据库的表单,结果取决于用户填写表单的方式。表单有6个搜索字段。用户可以选择/填写一个或多个字段中的任何一个来进行搜索。我把它编码如下 PHP

-applicationDidEnterBackground()
{
    [self scheduleLocalNotificationAtTimeIntervalFromNow:1.0f  identifier: @"someIdentifier"];
}

-applicationWillTerminate
{
    [self cancelLocalNotificationWithIdentifier: @"someIdentifier"];
    [self scheduleLocalNotificationAtTimeIntervalFromNow:0.0f  identifier: @"irrelevantIdentifier"];
}

现在当用户工作但它显示数据库表中的所有行。 例如,用户填写三个床位,城市,地点,其余三个是空白。 搜索结果页面显示数据库中包含所有记录的所有行。 请帮我纠正我的代码。提前致谢

2 个答案:

答案 0 :(得分:1)

首先,我同意@VaaChar,你应该使用mysqli或者更好的PDO。

您将确定IF是否已在某个字段中放置了值,如果是,则在查询中使用它。如果字段中没有放置任何值,请在查询中忽略它。

像这样......

$sqlid = "";
$sqloffered = "";
$sqltype = "";
$sqlbeds = "";
$sqlcity = "";
$sqllocality = "";

if(isset($propertyid)) {
    $sqlid = " propertyid LIKE '%$propertyid%'";
}
if(isset($propertyid) && isset($offered)) {
    $sqloffered = " OR offered LIKE '%$offered%'"; 
}
if(!isset($propertyid) && isset($offered)) {
    $sqloffered = " offered LIKE '%$offered%'"; 
}
if(isset($property_type)) {
    $sqltype = " AND property_type LIKE '%$property_type%'";
}
if(isset($beds)) {
    $sqlbeds = " AND beds LIKE '%$beds%'";
}
if(isset($city)) {
    $sqlcity = " AND city LIKE '%$city%'";
}
if(isset($locality)) {
    $sqllocality = " AND locality LIKE '%$locality%'";
}

$sql = "SELECT * FROM osrc_data WHERE {$sqlid}{$sqloffered}{$sqltype}{$sqlbeds}{$sqlcity}{$sqllocality} ";

答案 1 :(得分:0)

使用(例如)$ propertyid为空构建sql查询时,可以得到:

....喜欢'%%'......,

就像在说“什么”。您必须仅使用已填充的字段构建查询。