SQL语句怎么循环嵌套?
昨天刚问了怎么切割关键字,现在已经成功的获取包含多个关键词的数组了,把这个数组传到视图中准备用
//$arr1是包含关键字的数组
$a = $arr1['0'];
$b = $arr1['1'];
$sql = "SELECT * FROM topic WHERE title LIKE binary'%$a%' AND title LIKE binary'%$b%'“;
这样子的语句来进行切割,可是数组的的个数未知(也就是关键字的个数未知)
怎么用for嵌套进这个句子中呢? 这个你只要对应好字段名和值就好了么
比如说有个数组$data=array("binary"=>"test","title"=>"test two");
然后你也以循环构造where条件
或者可以使用ci的db的where_like 函数 本帖最后由 ivanlw 于 2010-3-29 18:17 编辑
回复 2# ywqbestever
先谢谢你的回答了,不过你貌似没听懂我想说的
我是想遇到如过有1个关键字,SQL语句就是
$sql = "SELECT * FROM topic WHERE title LIKE binary'%$arr%'“;
两个关键字,就
$sql = "SELECT * FROM topic WHERE title LIKE binary'%$arr%' AND title LIKE binary'%$arr%'“;
依此类推……
arr是一个存关键字的数组,数组个数未知 本帖最后由 ywqbestever 于 2010-3-29 19:24 编辑
啊?这样不更简单?
$where = ""
for($i=0;$i<$arr.length-1;$i++){
$where .= " title like binary............. and ";//省略了你的条件
}
$where .=" title like binary............. "
不就这样吗,然后你
$sql = "SELECT * FROM topic WHERE ".$where
不就可以了???? 呃,结贴吧,做了一个超级弱智的判断……
function search_topic($arr1,$space_count) {
//标准SQL语句的记录
//SELECT * FROM topic WHERE title LIKE binary'%回%'
//OR title LIKE binary'% %' OR title LIKE binary'%子%'
//循环语句描述:for ($i=0;$i<=$space_count;$i++)
if ($space_count == 0) {
$a = $arr1['0'];
$sql = "SELECT * FROM topic WHERE title LIKE binary'%$a%'";
} elseif ($space_count == 1) {
$a = $arr1['0'];
$b = $arr1['1'];
$sql = "SELECT * FROM topic WHERE title LIKE binary'%$a%' AND title LIKE binary'%$b%'";
} elseif ($space_count == 2) {
$a = $arr1['0'];
$b = $arr1['1'];
$c = $arr1['2'];
$sql = "SELECT * FROM topic WHERE title LIKE binary'%$a%' AND title LIKE binary'%$b%' AND title LIKE binary'%$c%'";
} elseif ($space_count == 3) {
$a = $arr1['0'];
$b = $arr1['1'];
$c = $arr1['2'];
$d = $arr1['3'];
$sql = "SELECT * FROM topic WHERE title LIKE binary'%$a%' AND title LIKE binary'%$b%' AND title LIKE binary'%$c%' AND title LIKE binary'%$d%'";
} elseif ($space_count == 4) {
$a = $arr1['0'];
$b = $arr1['1'];
$c = $arr1['2'];
$d = $arr1['3'];
$e = $arr1['4'];
$sql = "SELECT * FROM topic WHERE title LIKE binary'%$a%' AND title LIKE binary'%$b%' AND title LIKE binary'%$c%' AND title LIKE binary'%$d%' AND title LIKE binary'%$e%'";
}
//echo $sql;
$query = $this->db->query($sql);
return $query->result();
} 回复 4# ywqbestever
哦,对……你的方法OK!
页:
[1]