我有一百万行数据,但主键上没有不同的数据,我想从具有多列的复选框表单中删除多行,但失败了。
如果我尝试用作数据库插入,它就可以工作。
以下是错误详细信息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( "71", "03", "090", "005", "001", ' at line 13
HTML 代码
<input type="hidden" name="bayar[NM_WP_SPPT][]" value="<?=$NM_WP_SPPT?>">
<input type="hidden" name="bayar[KD_PROPINSI][]" value="<?=$itung['KD_PROPINSI']?>">
<input type="hidden" name="bayar[KD_DATI2][]" value="<?=$itung['KD_DATI2']?>">
<input type="hidden" name="bayar[KD_KECAMATAN][]" value="<?=$itung['KD_KECAMATAN']?>">
<input type="hidden" name="bayar[KD_KELURAHAN][]" value="<?=$itung['KD_KELURAHAN']?>">
<input type="hidden" name="bayar[KD_BLOK][]" value="<?=$itung['KD_BLOK']?>">
<input type="hidden" name="bayar[NO_URUT][]" value="<?=$itung['NO_URUT']?>">
<input type="hidden" name="bayar[KD_JNS_OP][]" value="<?=$itung['KD_JNS_OP']?>">
<input type="hidden" name="bayar[THN_PAJAK_SPPT][]" value="<?=$tahun?>">
<input type="hidden" name="bayar[TGL_JATUH_TEMPO_SPPT][]" value="<?=$itung['TGL_JATUH_TEMPO_SPPT']?>">
<input type="hidden" name="bayar[PEMBAYARAN_SPPT_KE][]" value="<?=$itung['PEMBAYARAN_SPPT_KE']?>">
<input type="hidden" name="bayar[KD_KANWIL_BANK][]" value="<?=$itung['KD_KANWIL_BANK']?>">
<input type="hidden" name="bayar[KD_KPPBB_BANK][]" value="<?=$itung['KD_KPPBB_BANK']?>">
<input type="hidden" name="bayar[KD_BANK_TUNGGAL][]" value="<?=$itung['KD_BANK_TUNGGAL']?>">
<input type="hidden" name="bayar[KD_BANK_PERSEPSI][]" value="<?=$itung['KD_BANK_PERSEPSI']?>">
<input type="hidden" name="bayar[KD_TP][]" value="<?=$itung['KD_TP']?>">
<input type="hidden" name="bayar[DENDA_SPPT][]" value="<?=$jumlah_tunggakan?>">
<input type="hidden" name="bayar[SEJUMLAH_RP][]" value="<?=$jumlah_yg_harus_dibayar?>">
<input type="hidden" name="bayar[JML_SPPT_YG_DIBAYAR][]" value="<?=$itung['PBB_YG_HARUS_DIBAYAR_SPPT']?>">
<input type="hidden" name="bayar[TGL_PEMBAYARAN_SPPT][]" value="<?=date('Y-m-d', time())?>">
<input type="hidden" name="bayar[TGL_REKAM_BYR_SPPT][]" value="<?=date('Y-m-d', time())?>">
<input type="hidden" name="bayar[NIP_REKAM_BYR_SPPT][]" value="<?="060000000"?>">
从数据库中删除的代码
$values = array();
for ($i=0; $i < count($_POST['bayar']['THN_PAJAK_SPPT']); $i++) {
$values[] = '(
"'.$_POST['bayar']['KD_PROPINSI'][$i].'",
"'.$_POST['bayar']['KD_DATI2'][$i].'",
"'.$_POST['bayar']['KD_KECAMATAN'][$i].'",
"'.$_POST['bayar']['KD_KELURAHAN'][$i].'",
"'.$_POST['bayar']['KD_BLOK'][$i].'",
"'.$_POST['bayar']['NO_URUT'][$i].'",
"'.$_POST['bayar']['KD_JNS_OP'][$i].'",
"'.$_POST['bayar']['THN_PAJAK_SPPT'][$i].'",
"'.$_POST['bayar']['PEMBAYARAN_SPPT_KE'][$i].'",
"'.$_POST['bayar']['KD_KANWIL_BANK'][$i].'",
"'.$_POST['bayar']['KD_KPPBB_BANK'][$i].'",
"'.$_POST['bayar']['KD_BANK_TUNGGAL'][$i].'",
"'.$_POST['bayar']['KD_BANK_PERSEPSI'][$i].'",
"'.$_POST['bayar']['KD_TP'][$i].'",
"'.$_POST['bayar']['DENDA_SPPT'][$i].'",
"'.$_POST['bayar']['JML_SPPT_YG_DIBAYAR'][$i].'",
"'.$_POST['bayar']['TGL_PEMBAYARAN_SPPT'][$i].'",
"'.$_POST['bayar']['TGL_REKAM_BYR_SPPT'][$i].'",
"'.$_POST['bayar']['NIP_REKAM_BYR_SPPT'][$i].'"
)';
}
$delete = "DELETE FROM PEMBAYARAN_TES WHERE (KD_PROPINSI , KD_DATI2 , KD_KECAMATAN , KD_KELURAHAN , KD_BLOK , NO_URUT , KD_JNS_OP ,
THN_PAJAK_SPPT , PEMBAYARAN_SPPT_KE , KD_KANWIL_BANK , KD_KPPBB_BANK , KD_BANK_TUNGGAL , KD_BANK_PERSEPSI , KD_TP ,
DENDA_SPPT , JML_SPPT_YG_DIBAYAR , TGL_PEMBAYARAN_SPPT , TGL_REKAM_BYR_SPPT , NIP_REKAM_BYR_STTS) = " . implode(',', $values);
mysqli_query($conn, $delete) or die (mysqli_error($conn));
}
这个错误是什么意思?以及如何解决?
如果“删除查询”不能这样,那么从具有“where multiple columns name”的复选框中删除多行的其他方法是什么?
?
最佳答案
如果选中,HTML 复选框表单元素将返回“on”,如果未选中,则不返回任何内容。因此,要查看复选框是否已选中,您必须使用 isset() 命令(如果您事先知道应该/不应该出现哪个复选框)并相应地检查数据库列。在这里,您仅收到选中的复选框并为其设置 where 子句。如果您需要为未选中的复选框设置 IS NOT,那么您必须提前列出它们。
$where=[];
$bayars=$_POST['bayar'];//gets 2D array
foreach($bayars as $midbayars)
{
foreach($midbayars as $key=>$bayar)
{
$where[]=$key.'='.1; //or whatewer is in database
}
}
$SQL='DELETE FROM PEMBAYARAN_TES WHERE '.implode(' AND ',$where)
关于php - 从多个复选框中删除过程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38691320/