ThinkPHP 中mysql where($where)查询的问题

ThinkPHP 中mysql where($where)查询的问题,第1张

您好,使用快捷查询

加入$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多条件多值查询示例代码:

index.html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=UTF-8">

<title>SQL多条件查询示例</title>

</head>

<body>

<form method="post" action="deal.php">

<h1>房屋出租</h1>

房屋类型:<select name="type">

<option value="1">一居室</option>

<option value="2">二居室</option>

<option value="3">三居室</option>

</select><br/>

面积:<input name="area" type="text"/><br/>

地址:<input name="addr" type="text"/><br/>

<input name="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 * from room  where " 

//根据条件和传的值拼接sql语句

//判断面积不为空

if($type!=""){

    //然后根据具体面积分情况拼接

    switch($type){

        case 1:

            //一居室

            $query.=" room_type=1" 

            break

        case 2:

            $query.=" room_type=2"

            break

        case 3:

            $query.=" room_type=3"

            break

    }

}

//面积

if($area!=""){

    $query.=" and area ={$area}"

}

//地址

if($addr!=""){

    $query.=" and addr like '%{$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/>"

    //等等

}

?>

增加一个字段或者将这个字段直接改为int型

值保存使用0,1,2,3,4.....10表示你的用户等级,在输出时加上Lv前缀就可以了,

这样的话,你可以直接在sql语句的where中指定条件,

比如说你的指定的这个字段名为level

则你可以

select * from members where level>3

其中level字段就是刚才转换的字段。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7345221.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存