我有一個表格顯示錶格中每個工程師的複選框。如果工程師的複選框未勾選,表單將被提交,它們將從作業中刪除($ diary_id)。in_array()期望參數2是數組,空給出的錯誤
此時的代碼正常工作,但在返回下一頁之前,頁面會簡要顯示此錯誤。
in_array()預計參數2爲陣列,空給定的錯誤
表格中的代碼...
$sql = "SELECT * FROM users WHERE type = 'engineer' ORDER BY first_name";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_array($result)){ ?>
<div style="width:70px; float:left">
<input type="hidden" name="engineer_on_page[]" value="<? echo $row['id']; ?>"/>
<input type="checkbox" name="engineer[]" <?
$eng_id= $row['id'];
$result2 = mysql_query("SELECT * FROM calls_engineers WHERE call_ce = '$diary_id' AND engineer_ce = '$eng_id'");
if((mysql_num_rows($result2)) > 0)
{ echo 'checked="checked"';
?> value="<? echo $row['id']; ?>" />
<? echo ' '.$row['first_name']; }
else {
echo "value=".$row['id']." />";
echo ' '.$row['first_name'];
}
?>
</div>
<? } ?>
MySQL的去除未被選擇的工程師
foreach($_POST['engineer_on_page'] as $engineer_id) {
$sql = "SELECT * FROM calls_engineers WHERE call_ce = '$diary_id' AND engineer_ce = '$engineer_id'";
$result = mysql_query($sql)or die(mysql_error());
if(!in_array($engineer_id, $_POST['engineer'])){
if(mysql_num_rows($result) > 0){
$sql = "DELETE FROM calls_engineers WHERE engineer_ce = '$engineer_id' AND call_ce = '$diary_id'";
$result = mysql_query($sql)or die(mysql_error());
}
}
}
我試圖在foreach循環之前初始化$ _POST ['engineer']作爲數組($ _POST ['engineer'] = array();),但它也停止了頁面的工作,沒有錯誤消息,它只是不再工作。
我知道這個頁面需要更新到mysqli,但我想在這之前先解決這個問題。
感謝
更換'如果(!in_array($ engineer_id,$ _ POST [ '工程師'])){'和'如果(isset($ _ POST [ '工程師'])&& is_array($ _ POST [ '工程師'])&& !in_array($ engineer_id,$ _POST ['engineer'])){' – Ejaz 2013-05-02 20:54:23
@Ejay,謝謝你,但它停止工作頁面 – tatty27 2013-05-02 21:02:04
'停止頁面工作'你的意思是你得到一些錯誤?或者它不執行刪除語句? – Ejaz 2013-05-02 21:13:05