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


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下使用strpos需要注意 === 运算符
Jul 17 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
php中adodbzip类实例
Dec 08 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
PHP开发的微信现金红包功能示例
Jun 29 PHP
PHP7扩展开发之hello word实现方法详解
Jan 15 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
PHP crypt()函数的用法讲解
Feb 15 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
Mar 16 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
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
PHP7 foreach() 函数修改
2021/03/09 PHP
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
python模块内置属性概念及实例
2021/02/18 Python
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
安全教育心得体会
2013/12/29 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
asyncio异步编程之Task对象详解
2022/03/13 Python
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python