• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> PHP 开发 >> PHP&MYSQL >> 详细内容
 

推荐文章

  • 通过MySQL内置全文检索实现中文的相关检索
 
 

热点文章

  • MySQL Error Code文档手册---摘自MySQL官方网站
  • 通过MySQL内置全文检索实现中文的相关检索
  • PHP连接MySQL出现乱码的一些个人看法
  • PHP,MYSQL常见问题与解答
  • MySQL中修改密码及访问限制设置详解
  • PHP脚本数据库功能详解
  • 多条件查询
  • 对MYSQL进行全文检索的PHP类库
  • 默默小谈PHP&MYSQL分页原理及实现
  • MySQL修改密码方法总结
  • Adodb 入门教程
  • Adodb官方介绍
 
 

相关文章

 
 

百度搜索

 
 

多条件查询

  • 阅览次数:
  • 文章来源: CP整理
  • 原文作者: 不详
  • 整理日期: 2006-10-09
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

有关多条件查询的问题,以前我在论坛发过帖子,前几天有网友对此感兴趣,我就花了点时间整理了一下,其实并没有什么特别的,关键在于写出正确的SQL查询语句,由于各人所用数据库不同,而SQL语句是相同的。所以在此我仅给出根据多个条件自动生成的符合要求的SQL语句。对条件的数目基本没有限制,不超过数组的组元数目就可以了。
说白了,其实就是字符串的游戏。拼拼凑凑而已。这里使用数组储存条件和查询语句,程序也不长,有详细的注释,不会化您多少功夫的。呵呵。
在conditions_search.html中输入您的查询条件,点击查询。您输入的条件在提交到display_search_SQL.php进行处理后,将给出合适的SQL语句。


/***************conditions_search.html****************/
<html>
<head>
<title>Conditions_Search多条件查询</title>
</head>
<body>
Conditions_Search多条件查询:
<form name="form1" method="post" action="display_search_SQL.php">
Condition1:<input type="text" name="condition1"><br>
Condition2:<input type="text" name="condition2"><br>
Condition3:<input type="text" name="condition3"><br>
Condition4:<select name="condition4">
<option value='' selected>all</option>
<option value='red'>red</option>
</select><br>
<input type='submit' name='search' value='查询'>
</form>
</body>
</html>
/***************conditions_search.html**********************/


/***************display_search_SQL.php*********************/
<?//从conditions_search.html接收到四个条件,
//condition1,condition2,condition3,condition4。
//其中有文本框输入的字符串,有列表框下拉选择的,
//这些接收条件的方式都不重要。
//条件还可以增加(没什么限制,当然也不要太大,超过数组的上限)。
//以下有几点注意:
//认为条件值为空时,不限制;
//要查询的表名为testtable;
//condition1对应的字段名为column1……
//

$ConditionsNumber=4; //共有4个条件。(可改为实际使用的条件数)
$ConditionsArray=array("$condition1","$condition2","$condition3","$condition4");
//把各个条件排入一个数组中,方便下面循环。(数组很容易扩充)
$SearchSQLArray=array(" where column1='$condition1'"," where column2 like '%$condition2%'"," where column3='$condition3'"," where column4='$condition4'");
//预写好一些SQL语句,下面再根据情况处理。(数组很容易扩充)

for($i=0;$i<$ConditionsNumber;$i++)
{
if($ConditionsArray[$i]=="")
$SearchSQLArray[$i]="";
//第一步处理:如果条件值为空,相应的SQL语句为空。
$haveWhere=false; //设“存在where”检查标志的初值为false。
for($j=0;$j<$i;$j++)
//从开始到目前循环的i,处理有哪些where
//需要变为and。
{
$wherePosition=strpos($SearchSQLArray[$j],"where");
//检查i前面是否有where出现。
if(($wherePosition=="1")&&($haveWhere==false))
{
$SearchSQLArray[$i]=ereg_replace("where","and",$SearchSQLArray[$i]);
//where的位置为1,且前面已有where。
//则where换成and。
$haveWhere=true; //"存在where”检查标志设为true。
}
}
};

for($i=0;$i<$ConditionsNumber;$i++)
$sql=$sql.$SearchSQLArray[$i];
$sql="select * from mytable".$sql.";";
//组成SQL语句
echo $sql;
?>
/**************display_search_SQL.php*********************/


摘自:<a href=http://phpuser.com/tips_and_tricks/detail.php?id=126>PHP中文用户</a>

上一篇:ASP抽取数据的执行效率
下一篇:比AcdSee功能还强大的图片处理、编辑软件,推荐下载!
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号