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


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下10件你也许并不了解的事情
Sep 11 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
详解PHP序列化反序列化的方法
Oct 27 PHP
php中session定期自动清理的方法
Nov 12 PHP
PHP异常处理Exception类
Dec 11 PHP
php自动提交表单的方法(基于fsockopen与curl)
May 09 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
PHP工厂模式的日常使用
Mar 20 PHP
php时间戳转换代码详解
Aug 04 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 PHP
Laravel中如何轻松容易的输出完整的SQL语句
Jul 26 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
三个类概括PHP的五种设计模式
2012/09/05 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
JavaScript基本对象
2007/01/11 Javascript
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
JS 类型转换常见方法小结
2010/05/31 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
不使用 JS 匿名函数理由
2017/11/17 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
老生常谈Python进阶之装饰器
2017/05/11 Python
python科学计算之narray对象用法
2019/11/25 Python
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
师德师风事迹材料
2014/12/20 职场文书
回复函格式及范文
2015/07/14 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
七年级作文之秋游
2019/10/21 职场文书