这是我的表单中的$ _POST数组。
Array ([prescribedid] => Array ([0] => 1 [1] => 2 [2] => 3 [3] => 9 [4] => 13)
我想为Array中的任何项创建一个select。我已经写了这个,它产生了正确的SELECT,但是if()消除了尾随OR使它变得笨重。
$query = "SELECT * ";
$query .= "FROM prescribed WHERE ";
for($i=0; $i<count($_POST["prescribedid"]); $i++) {
$query .= "prescribedid={$_POST['prescribedid'][$i]} ";
if($i < (count($_POST["prescribedid"])-1)) {
$query .= "OR ";
}
}
它产生这样的:
SELECT * FROM prescribed WHERE prescribedid=1 OR prescribedid=2 OR prescribedid=3 OR prescribedid=9 OR prescribedid=13
是否有另一种方式来组选择或写FOR()使它更清洁,即没有最后IF()。
'提示:'您可以依次用'IN'避免多次'或'条款。 '...在指定的地方(1,2,3,9,13)....' – 1000111
'提示:'您需要使用PDO或vaidate输入。此代码可用于SQL注入。 – ineersa