一个简单实现多条件查询的例子


Posted in PHP onOctober 09, 2006

在我们的网站设计过程中,经常会用到多条件查询,本文的源码是一个二手房屋查询的例子。在本例中,我们要实现能够通过地理位置,物业类型,房屋价格,房屋面积及信息发布日期等多个条件查询到客户所需的资料。以下是实现过程。
查询条件界面(略):
查询文件(search.php)
一、生成查询语句:
<?
$conn=mysql_connect("localhost","root","");
$db=mysql_select_db("lingyun");
$query="select * from message where tradetype='".$tradetype."'";  //交易类型,如出租,出售
$SQL=$SQL . "wuye='" . $wuye . "'";
if($housetype!="不限"){
$query.=" && housetype='".$housetype."'"; //房屋类型,如二室一厅,三室二厅
}
if($degree!="不限"){
$query.=" && degree='".$degree."'";  //新旧程度
}
if($wuye!="不限"){
$query.=" && wuye='".$wuye."'";   //物业类型 如住房,商铺
}
if($price2!=""){
switch($price1){
case "大于":
$query.=" && price>'".$price2."'";   //价格
break;
case "等于":
$query.=" && price='".$price2."'";
break;
case "小于":
$query.=" && price<'".$price2."'";
break;
}
}
if($area2!=""){
switch($area1){
case "大于":
$query.=" && area>'".$area2."'";  //面积
break;
case "等于":
$query.=" && area='".$area2."'";
break;
case "小于":
$query.=" && area<'".$area2."'";
break;
}
}
switch($pubdate){                   //发布日期
case "本星期内":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=7";
break;
case "一个月内":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=30";
break;
case "三个月内":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=91";
break;
case "六个月内":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=183";
break;
}
if($address!=""){
$query.=" &&  address like '%$address%'";  //地址
}
if(!$page){
$page=1;
}
?>

二、输出查询结果:
<?php
     if ($page){
     $page_size=20;
     $result=mysql_query($query);
     #$message_count=mysql_result($result,0,"total");
     $message_count=10;
     $page_count=ceil($message_count/$page_size);
     $offset=($page-1)*$page_size;
     $query=$query." order by date desc limit $offset, $page_size";
     $result=mysql_query($query);
     if($result){
     $rows=mysql_num_rows($result);
     if($rows!=0){
     while($myrow=mysql_fetch_array($result)){
     echo "<tr>";
     echo "<td width='15' height='12'><img src='image/home2.gif' width='14' height='14'></td>";
     echo "<td width='540' height='12'>$myrow[id] $myrow[tradetype] $myrow[address] $myrow[wuye]($myrow[housetype])<font style='font-size:9pt'>[$myrow[date]]</font>";
     echo "</td>";
     echo "<td width='75' height='12'><a href='view_d.php?code=$myrow[code]' target='_blank'>详细内容</a></td>";
     echo "</tr>";
         }
       }
     else echo "<tr><td><div align='center'><img src='image/sorry.gif'><br><br>没有找到满足你条件的记录</div></td></tr>";
     }

         $prev_page=$page-1;
         $next_page=$page+1;
         echo "<div align='center'>";
         echo " 第".$page."/".$page_count."页 ";
         if ($page<=1){
             echo "|第一页|";
            }
         else{
             echo "<a href='$PATH_INFO?page=1'>|第一页|</a>";
             }
         echo " ";
         if ($prev_page<1){
             echo "|上一页|";
            }
         else{
             echo "<a href='$PATH_INFO?page=$prev_page'>|上一页|</a>";
             }
         echo " ";
         if ($next_page>$page_count){
             echo "|下一页|";
             }
         else{
             echo "<a href='$PATH_INFO?page=$next_page'>|下一页|</a>";
              }
         echo " ";
         if ($page>=$page_count){
             echo "|最后一页|";
               }
         else{
             echo "<a href='$PATH_INFO?page=$page_count'>|最后一页|</a>";
             }
        echo "</div>";
    }
     else{
         echo "<p align='center'>现在还没有房屋租赁信息!</p>";
       }
   echo "<hr width="100%" size="1">";
  ?>
    </table>    

如果在使用过程中出现什么问题,请与我联系(yk_lingyun@21cn.com),欢迎指正!

【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】    

PHP 相关文章推荐
PHP截取中文字符串的问题
Jul 12 PHP
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
mac下安装nginx和php
Nov 04 PHP
php为字符串前后添加指定数量字符的方法
May 04 PHP
PHP按指定键值对二维数组进行排序的方法
Dec 22 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
Jan 11 PHP
既简单又安全的PHP验证码 附调用方法
Jun 02 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 PHP
基于PHP实现用户在线状态检测
Nov 10 PHP
用PHP和ACCESS写聊天室(十)
Oct 09 #PHP
php生成EXCEL的东东
Oct 09 #PHP
一个取得文件扩展名的函数
Oct 09 #PHP
PHP 如何向 MySQL 发送数据
Oct 09 #PHP
PHP安装攻略:常见问题解答(一)
Oct 09 #PHP
利用PHP实现与ASP Banner组件相似的类
Oct 09 #PHP
PHP聊天室技术
Oct 09 #PHP
You might like
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
PHP编实现程动态图像的创建代码
2008/09/28 PHP
url decode problem 解决方法
2011/12/26 PHP
用来解析.htpasswd文件的PHP类
2012/09/05 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
python用来获得图片exif信息的库实例分析
2015/03/16 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
Python单元和文档测试实例详解
2019/04/11 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
什么是反射?如何实现反射?
2016/07/25 面试题
工程招投标邀请书
2014/01/30 职场文书
一份创业计划书范文
2014/02/08 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
先进个人申报材料
2014/12/30 职场文书
2016年春节问候语
2015/11/11 职场文书
2016七夕情人节感言
2015/12/09 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书