需要将两个数组值传递给MySQL数据库以插入数组值。 我从表单中发布数组值:
<input type='checkbox' name=ticket[] value=".$TicketNo.">
<input type='hidden' name=cpt[] value=".$cpt.">
并通过以下方式将表单值传递到数据库中:
foreach($_POST['ticket'] as $ticket && $_POST['cpt'] as $cpt )
{
// save the data to the database
mysql_query("INSERT arlog SET assdate='$assdate',TicketNo='$ticket',assign='$assign',status='New',quality_status='New',provider='$provider',cpt='$cpt'")
or die(mysql_error());
}
我知道mysql_query
没有被广泛使用,但作为一个新手,我正在使用它。所以只需忽略该语句并指导我使用每个循环传递两个数组值。通过只传递票号它工作正常,但我也想通过cpt。
答案 0 :(得分:0)
我将忽略mysql_*
,因为您需要移动到MySQLi或PDO,如您所知。但请使用$_POST['ticket']
中的密钥访问$_POST['cpt']
:
foreach($_POST['ticket'] as $key => $ticket)
{
$cpt = $_POST['cpt'][$key];
}
最好指定数组键,特别是如果未选中则不会提交复选框:
<input type='checkbox' name=ticket[0] value=".$TicketNo.">
<input type='hidden' name=cpt[0] value=".$cpt.">
<input type='checkbox' name=ticket[1] value=".$TicketNo.">
<input type='hidden' name=cpt[1] value=".$cpt.">
答案 1 :(得分:0)
您可以像这样设置数组:
<input type='checkbox' name=ticket[][number] value=".$TicketNo.">
<input type='hidden' name=ticket[][cpt] value=".$cpt.">
并将一个sql查询与每个两个字段名称连接起来,例如single:
$inserts = array();
foreach ($_POST['ticket'] as $ticket) {
$inserts[] = "'{$ticket['number']}', '{$ticket['cpt']}'";
}
$sql = 'INSERT INTO tbl (TicketNo, cpt) VALUES (' . join('),(', $inserts) . ');';