我有一个包含3个字段的表单
textfield,checkbox,checkbox2
他们是帐号的数组,即 返回[12345]第二[12345]第3 [12345]
我需要提取它们的值和键,但
如果重新调整有值,它会在那里停止并将其放入数据库中。 如果返回为空,请参阅 如果单击任一复选框 如果第3个和第2个没有说对不起3来自2 如果第二次被检查,第三次没有在数据库中更新 如果第二个和第三个被检查更新数据库
有些行没有填写或检查
我没有工作的代码如下:
<?
if (isset($_POST["update"])) // if it's not set, do nothing.
{
include('cond.php');
$idx['Returned'] = array_keys( $_POST['Returned'] );
$idx['2nd'] = array_keys( $_POST['2nd'] );
$idx['3rd'] = array_keys( $_POST['3rd'] );
for(
$i = 0;
$i < min( array_map( 'count', $idx ) );
$i++ )
{
$AN = $idx['Returned'][$i];
$RET = $_POST['Returned'][$AN];
$Chk = $idx['2nd'][$i];
$Val = $_POST['2nd'][$Chk];
$Chk2 = $idx['3rd'][$i];
$Val2 = $_POST['3rd'][$Chk2];
//If date is filled in
if(!empty($RET)){
// store it
$doit = "UPDATE `dbname`.`tname` SET `Returned`= '$RET' WHERE `account_number`='$AN'";
mysql_query($doit) or die('mySQL Error: ' . mysql_error());
}else{
// 2nd isn't filled check 3rd
if (empty($Val)) {
// 3rd is filled in
If(!empty($Val2)) {
print "Third VOR cannot be checked before Second.";
}else{
// 3rd is not set but 2nd is
if(empty($Val2)){
$doit = "UPDATE `dbname`.`tname` SET `Second`='$Val' WHERE `account_number`='$Chk'";
mysql_query($doit) or die('mySQL Error: ' . mysql_error());
}else{
// 2nd and 3rd are set
$doit = "UPDATE `dbname`.`tname` SET `Second`='$Val' ,`Third`='$Val2' WHERE `account_number`='$Chk'";
mysql_query($doit) or die('mySQL Error: ' . mysql_error());
}//end if 2
}//end if
}//end if
}
}}
?>
任何想法是什么或如何确保我更新数据库并且没有警告 //示例警告// 警告:array_keys()期望参数1为数组,在第9行的/home/blah/public_html/blah/blah/insertret.php中给出为null
lilRachie
答案 0 :(得分:0)
除非您将表单字段命名为数组,例如name="returned[]"
,否则您收到的值是字符串,而不是数组。
因此$_POST['Returned']
将是一个字符串,您需要解析该字符串以获取您要查找的值。