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


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 md5下16位和32位的实现代码
Apr 09 PHP
PHP sprintf()函数用例解析
May 18 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 PHP
php天翼开放平台短信发送接口实现方法
Dec 22 PHP
PHPExcel内存泄漏问题解决方法
Jan 23 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
php按字符无乱码截取中文的方法
Mar 27 PHP
PHP数组和explode函数示例总结
May 08 PHP
php封装的smartyBC类完整实例
Oct 19 PHP
php获取开始与结束日期之间所有日期的方法
Nov 29 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
Jul 21 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清除和销毁session的方法分析
2015/03/19 PHP
PHP运行模式汇总
2016/11/06 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
浅谈javascript中的闭包
2015/05/13 Javascript
javascript常用函数(2)
2015/11/05 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python实现控制台输入密码的方法
2015/05/29 Python
浅谈django中的认证与登录
2016/10/31 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
Python之指数与E记法的区别详解
2019/11/21 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
EntityManager都有哪些方法
2013/11/01 面试题
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
转党组织关系介绍信
2014/01/08 职场文书
先进工作者申报材料
2014/12/23 职场文书
小学思品教学反思
2016/02/20 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript