Php 使用一个查询插入多个数组
我想在数据库中插入一组复选框、下拉列表和日期。如果我选中了所有复选框,则所有操作都正常。但是,当我选中某些复选框时,可以插入复选框的值,但不能插入下拉列表和日期的值 这是复选框、下拉列表和日期的代码:Php 使用一个查询插入多个数组,php,arrays,pdo,insert,Php,Arrays,Pdo,Insert,我想在数据库中插入一组复选框、下拉列表和日期。如果我选中了所有复选框,则所有操作都正常。但是,当我选中某些复选框时,可以插入复选框的值,但不能插入下拉列表和日期的值 这是复选框、下拉列表和日期的代码: <div class='field'> <div class='checkboxes'> <div class='checkbox'> <input type='checkbox' id='spesimen$
<div class='field'>
<div class='checkboxes'>
<div class='checkbox'>
<input type='checkbox' id='spesimen$i' name='spesimen[]' value='$JenisSpesimen' required minlength='1'/><label>$JenisSpesimen</label><br>
</div>
<div class='select'>
<select id='bilangan$i' name='bilangan[]' class='med' style='display: none;'>
<option></option>
<option value='Pertama'>Pertama</option>
<option value='Kedua'>Kedua</option>
</select>
</div>
<br>
<div class='input' id='tarikh_ambil$i' style='display: none;'>
<input type='text' id='tarikh_ambil_spesimen$i' name='tarikh_ambil_spesimen[]' class='small' readonly/>
</div>
</div>
</div>
$JenisSpesimen
佩塔马
凯杜阿
这就是过程:
$spesimen = $_POST['spesimen'];
$countSpesimen = count($_POST['spesimen']);
$bilangan = $_POST['bilangan'];
//$countBilagan = count($_POST['bilangan']);
$tarikh_ambil = $_POST['tarikh_ambil_spesimen'];
//$countTarikh = count($_POST['tarikh_ambil_spesimen']);
for ( $x = 0; $x < $countSpesimen; $x++)
{
$xx = $x+1;
$SubIDMohon = $IDMohonx.'-'.$xx;
$dd=substr($tarikh_ambil[$x], 0, 2);
$mm=substr($tarikh_ambil[$x], 3, 2);
$yy=substr($tarikh_ambil[$x], 6, 4);
$tarikh_ambil[$x] = $yy."-".$mm."-".$dd;
if($tarikh_ambil[$x] == '--') { $tarikh_ambil[$x] = '0000-00-00'; }
$pdo->exec("insert into simka_spesimen(IDMohon,SubIDMohon, Nama, LainLain, TarikhAmbil, TarikhHantar, TarikhMakmalTerima)
values ('".$IDMohonx."','".$SubIDMohon."','".$spesimen[$x]."','".$bilangan[$x]."','".$tarikh_ambil[$x]."','".$tarikh_hantar_spesimen."','".$tarikh_terima_spesimen."')");
}
$spesimen=$\u POST['spesimen'];
$countSpesimen=count($_POST['spesimen']);
$bilangan=$_POST['bilangan'];
//$countBilagan=count($_POST['bilangan']);
$tarikh_ambil=$_POST['tarikh_ambil_spesimen'];
//$countTarikh=count($_POST['tarikh\u ambil\u spesimen']);
对于($x=0;$x<$countSpesimen;$x++)
{
$xx=$x+1;
$SubIDMohon=$IDMohonx.'-'.$xx;
$dd=substr($tarikh_ambil[$x],0,2);
$mm=substr($tarikh_ambil[$x],3,2);
$yy=substr($tarikh_ambil[$x],6,4);
$tarikh_ambil[$x]=$yy.-“$mm.-”$dd;
如果($tarikh_ambil[$x]=='--'){$tarikh_ambil[$x]='0000-00-00';}
$pdo->exec(“插入simka_spesimen(IDMohon、SubIDMohon、Nama、LainLain、TarikhAmbil、TarikhHantar、TarikhMakmalTerima)
值(“$IDMohonx.”、“$SubIDMohon.”、“$spesimen[$x]”、“$bilangan[$x]”、“$tarikh_ambil[$x]”、“$tarikh_hantar_spesimen.”、“$tarikh_terima_spesimen.”、“$tarikh_terima u spesimen.”);
}
我建议将您的字段包装成一个通用名称,这样您就可以在每个“字段集”上运行foreach,然后访问其相应的字段,而不是像现在这样将它们分开和独立
HTML应该是这样的:(按照您的意愿实现计数器,但是在添加另一个集合之前一定要增加它)
尝试打印$\u帖子
,以便查看其结构
祝你好运 欢迎光临。看起来像是你的第一篇文章。请描述表单数据是如何发布到PHP的。请提供更多的代码示例。此外,不需要使用
name='spesimen[]”
,因为您只有一个元素。由于没有许多元素具有相同的名称
,因此不会创建任何数组。建议只使用name='spesimen'
和$\u POST['spesimen']
[]值A-下拉列表--date-[]值B-下拉列表--date-这是应该显示的内容。所以,当我检查值B时,下拉列表和日期并没有插入到数据库中。只有我检查了值A,他们才不会有任何问题如果我没有将名称设置为spesimen[],我可以计算帖子的总数吗@你为什么要数一数?
<div class='field'>
<div class='checkboxes'>
<div class='checkbox'>
<label><input type='checkbox' id='spesimen$i' name='fieldset[$counter][spesimen]' value='$JenisSpesimen' required minlength='1'/>$JenisSpesimen</label>
</div>
<div class='select'>
<select id='bilangan$i' name='fieldset[$counter][bilangan]' class='med' style='display:none;'>
<option></option>
<option value='Pertama'>Pertama</option>
<option value='Kedua'>Kedua</option>
</select>
</div>
<div class='input' id='tarikh_ambil$i' style='display:none;'>
<input type='text' id='tarikh_ambil_spesimen$i' name='fieldset[$counter][tarikh_ambil_spesimen]' class='small' readonly/>
</div>
</div>
</div>
foreach($_POST['fieldset'] as $i=>$fields){
$SubIDMohon = $IDMohonx .'-' . ($i + 1) ;
//If specimen is checked, the value comes with post, otherwise set it to default ''
$specimen = ( isset($fields['specimen']) ) ? $fields['specimen'] : '';
//check if the date is valid format
$date = '';
if(preg_match('^([0-9]{2}-){2}[0-9]{4}$', $fields['tarikh_ambil_spesimen'])){
$date = implode('-', array_reverse( explode('-', $fields['tarikh_ambil_spesimen']) ) );
}
else{
$date = '0000-00-00';
}
$pdo->exec(
"insert into simka_spesimen(IDMohon,SubIDMohon, Nama, LainLain, TarikhAmbil, TarikhHantar, TarikhMakmalTerima)
values (
'" . $IDMohonx . "',
'" . $SubIDMohon . "',
'" . $spesimen . "',
'" . $fields['bilangan'] . "',
'" . $date . "',
'" . $tarikh_hantar_spesimen . "',
'" . $tarikh_terima_spesimen . "'
)"
);
}