正如@lucarnosky和@gus建议的那样,我最后检查$post变量是否不为空,然后将它们添加到字符串中。这就是代码当前的样子:
$s = "";
foreach ($_POST as $i => $values) {
if (!is_array($values)) {
if (!empty($values)){
echo $i . ": " . $values . "\n";
$s .= " AND " . $i . "=" . $values . " ";
}
}
else {
foreach ($values as $key => $value) {
if (!empty($value)) {
echo $i . ": " . $key . ": " . $value . "\n";
$s .= " AND " . $key . "=" . $value . " ";
}
}
}
}
$q='SELECT i.RID, i.ITEM, i.ITEMNAME, i.Desc,
GROUP_CONCAT(concat(m.META_NAME, ": ", m.META_VALUE)) AS Meta, l.Building, l.PERSON_TYPE
FROM LAF_Lost_Items AS i INNER JOIN LAF_Lost_Items_Metadata AS m ON i.RID=m.RID AND i.ITEM=m.ITEM
INNER JOIN LAF_Lost_Inquiries AS l ON l.RID=i.RID
WHERE ' . $s . ' GROUP BY i.RID, i.ITEM;';
如果你有更好的答案,请告诉我。