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


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 相关文章推荐
人大复印资料处理程序_查询篇
Oct 09 PHP
php连接mysql数据库代码
Mar 10 PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 PHP
php插件Xajax使用方法详解
Aug 31 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 PHP
Thinkphp5.0框架视图view的循环标签用法示例
Oct 12 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 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/10/09 PHP
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
删除重复数据的算法
2006/11/23 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
Python零基础入门学习之输入与输出
2019/04/03 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
岗位职责的定义
2013/11/10 职场文书
借款协议书范本
2014/04/22 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
keepalived + nginx 实现高可用方案
2022/12/24 Servers