我有下面的数组示例,我正在使用它根据表单中勾选的选项动态创建SQL查询。下面的代码测试是否有值,如果有,则将其追加到数组中:
if ($lookchild) { $val[]='lookchild'; }
if ($mentalcap) { $val[]='mentalcap'; }
if ($mentalheal) { $val[]='mentalheal'; }
if ($olderpeople) { $val[]='olderpeople'; }
if ($palcare) { $val[]='palcare'; }然后,我循环遍历数组并添加SQL语句的其余部分:
foreach ($val as $r){
echo $r.'=1 AND ';
} 这会产生以下结果:
olderpeople=1 AND palcare=1 AND lookchild=1 AND当循环到达最后一个条目时,我不希望它将和附加到它后面,因为SQL语句需要在该点之后结束。
我希望它如何完成:
olderpeople=1 AND palcare=1 AND lookchild=1发布于 2010-08-20 04:44:11
发布于 2010-08-20 04:44:33
一个常见的技巧是使用'WHERE 1=1‘,然后你可以在后面加上’AND foo = bar‘,而不会出现语法错误。
WHERE 1=1 AND olderpeople=1 AND palcare=1 AND lookchild=1发布于 2010-08-20 04:44:33
这就是的用途:
$result = array();
foreach ($val as $r){
$result[] = "$r=1";
}
$result = implode($result, ' AND ');https://stackoverflow.com/questions/3526035
复制相似问题