我遇到这种情况:
print_r($test);
echo '<br>';
$and = '';
for ($i=0; $i<$count; $i++){
$and.= ' u.room = '.$test[$i];
$and.= ' OR ';
}
结果将是:
Array ( [0] => 1 [1] => 3 [2] => 4 [3] => 5 [4] => 6 )
u.room = 1 OR u.room = 3 OR u.room = 4 OR u.room = 5 OR u.room = 6 OR
我想要的是删除最后一个'OR',以便字符串变为:u.room = 1 OR u.room = 3 OR u.room = 4 OR u.room = 5 OR u.room = 6
任何想法?
由于
答案 0 :(得分:1)
for ($i=0; $i<$count; $i++){
$and.= ' u.room = '.$test[$i];
if ($i != $count-1) {
$and.= ' OR ';
}
}
答案 1 :(得分:1)
使用另一个数组效果很好,使用implode生成最终字符串:
$clauses = array();
foreach($test as $t) {
$clauses[] = "u.root = {t[$i]}";
}
$ands = implode(',', $clauses);
但是,对于你的情况,它是一个字段和多个值,你可以去另一个:
$in = implode(',', $test);
$sql = " ... WHERE u.room IN ($in)";
答案 2 :(得分:1)
更简单(如果$test
为空,则尽管不完全相同):
$and = "u.room = " . implode(" OR u.room = ", $test);