phpmysqlwhereand
SELECT * FROM table WHERE `jishu` BETWEEN 2014001 AND 2015100
② php mysql 查询指定表 以两个字段做为条件 最后输出所查询字段
mysql_connect('127.0.0.1','root','root');
mysql_select_db('数据库名');
mysql_query('set names gbk');
$query = mysql_query("select a from aaa whee b=5 and c=6");
while($rs = mysql_fetch_assoc($query)){
echo $rs['a'],'<br>';
}
③ 请教一个php+mysql多条件查询的语句
一般方法是这样的:
$cond="where addtime between '$starttime' and '$endtime'";
if ($work!='') $cond.=" and work='$work'";
if ($user!='') $cond.=" and user='$user'";
if ($text!='') $cond.=" and text like '%$text%'";
$sql="select addtime from table $cond";
......
mysql_query($sql)
........
能够明白我的思路吧?不明白请说明。
补充:
调试语句应该这样:
if (!$result)
echo "SQL=$sql, ERROR=".mysql_error();
④ PHP+mysql的复合多条件查询
这个问题简单,如果不用JS的话,可以用GET变量传入
例:c.php为显示文件,当点击地区,则在文件后加入地区代码
c.php?dq=北京
这样获取地区的值进行查询,选择地区后,再点价格URL则变为:
c.php?dq=北京&jg=5000
这样再加入第二个条件价格查询就好了。
如果有第三个条件 则以此类推。
⑤ php+mysql模糊查询功能
一般模糊查询语句如下:
SELECT 字段 FROM 表 WHERE 某字段 Like 条件
其中关于条件,SQL提供了四种匹配模式:
1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
2,_ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';
只找出“三脚猫”这样name为三个字且第一个字是“三”的;
3,[ ] :表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
比如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'
将找出“张三”、“李三”、“王三”(而不是“张李王三”);
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'
将找出“老1”、“老2”、……、“老9”;
4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
比如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'
将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
将排除“老1”到“老4”,寻找“老5”、“老6”、……
5,查询内容包含通配符时
由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:
function sqlencode(str)
str=replace(str,"[","[[]") '此句一定要在最前
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
end function
⑥ ThinkPHP 中mysql where($where)查询的问题
您好,使用快捷查询
加入$map['_logic'] = 'OR';
或
$map['id|receiverid'] = array(session('uid'),array('in', implode(",",$idset)),'_multi'=>true);
以上方法等效。
当且与或并存时可以用复合查询,如以下多了一个name
$map['receiverid'] = session('uid');
$map['id'] = array('in', implode(",",$idset));
$map['_logic'] = 'OR';
$where['name'] = 'abc';
$where['_complex'] = $map;
M('message') -> where($where)->select();
将生成:
WHERE (`receiverid` = 1 OR `id` IN ('13','12','10','9')) AND `name`='abc'。
⑦ php+mysql多条件多值查询
PHP+Mysql多条件多值查询示例代码:
index.html代码:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
<title>SQL多条件查询示例</title>
</head>
<body>
<formmethod="post"action="deal.php">
<h1>房屋出租</h1>
房屋类型:<selectname="type">
<optionvalue="1">一居室</option>
<optionvalue="2">二居室</option>
<optionvalue="3">三居室</option>
</select><br/>
面积:<inputname="area"type="text"/><br/>
地址:<inputname="addr"type="text"/><br/>
<inputname="btn"type="submit"value="搜索"/><br/>
</form>
</body>
</html>
deal.php文件:
<?php
//连接数据库
$conn=mysql_connect("localhost","root","");
//选择数据库
$db=mysql_select_db("数据库名");
//接收参数
$type=$_POST['type'];
$area=$_POST['area'];
$addr=$_POST['addr'];
//SQL语句主题
$query="select*fromroomwhere";
//根据条件和传的值拼接sql语句
//判断面积不为空
if($type!=""){
//然后根据具体面积分情况拼接
switch($type){
case1:
//一居室
$query.="room_type=1";
break;
case2:
$query.="room_type=2";
break;
case3:
$query.="room_type=3";
break;
}
}
//面积
if($area!=""){
$query.="andarea={$area}";
}
//地址
if($addr!=""){
$query.="andaddrlike'%{$addr}%'";//地址
}
//执行查询
$result=mysql_query($query);
//遍历结果
echo"搜搜结果如下:";
while($row=mysql_fetch_array($result)){
echo"地址:".$row['addr'];
echo"<br/>";
echo"面积:".$row['area'];
echo"<br/>";
echo"居室:".$row['type'];
echo"<br/>";
echo"价格:".$row['addr'];
echo"<br/>";
//等等
}
?>
⑧ php多条件查询mysql并输出的问题
php查询mysql 多条件判断输出显示
背景:
从mysql查询各字段值输出并且按照条件用红色字体显示满足条件字段值。
条件:
1.syntime小于当前前一周时间的话显示红色。
2.A字段为"无"的话,显示红色。
3.B字段为"无"的话,显示红色。
图一数据库结构:
php查询mysql 多条件判断输出展示 三联
图二数据库各字段值:
我的代码:(我只满足了第一个条件,其余两个条件不知道该怎么来写)
$sql = "select username, onoff, intime, syntime, device, a,b,person,dtime from cdmobile order by username desc ";
$rst = mysql_query($sql);
while($row=mysql_fetch_array($rst)){
$nowtime=strtotime('+7 day');
$syntime=strtotime($row['syntime']) ;
if($nowtime>=$syntime){
echo "{$row['username']}{$row['onoff']}{$row['intime']}{$row['syntime']}{$row['device']}
>{$row['a']}{$row['b']}{$row['person']}{$row['dtime']}";
}
else
echo "{$row['username']}{$row['onoff']}{$row['intime']}{$row['syntime']}{$row['device']}{$row['a']}{$row['b']}{$row['person']}{$row['dtime']}";
}
请各位大婶帮忙完善一下代码。要能同时满足三个条件的,并且能正确输出,该显示红色的地方显示红色。以下是目前的结果:
------解决方案--------------------
echo "{$row['username']}{$row['onoff']}{$row['intime']}";
if ($nowtime>=$syntime)
echo "{$row['syntime']}";
else
echo "{$row['syntime']}";
echo "{$row['device']}";
if ($row['a' ]== "无")
echo "{$row['a']}";
else
echo "{$row['a']}";
if ($row['b'] == "无")
echo "{$row['b']}";
else
echo "{$row['b']}";
echo "{$row['person']}{$row['dtime']}";
纠正下