многопрофильная форма php проблема - PullRequest
0 голосов
/ 24 марта 2012

У меня есть форма, которая имеет 3 поля

текстовое поле, флажок, флажок2

это массивы по номеру счета, т.е. Возвращено [12345] 2-е [12345] 3-е [12345]

Мне нужно вытащить все значения и ключи, кроме

, если возвращаемое значение имеет значение, оно останавливается там и помещает его в базу данных. если возвращено пусто, см. если установлен флажок если 3-й и 2-й не сказать извините 3 приходит после 2 если 2-й установлен и 3-й не обновляется в базе данных если 2 и 3 проверены, обновите базу данных

есть строки, в которых ничего не заполнено или не проверено

Код, который у меня не работает, выглядит следующим образом:

    <?
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 будет массивом, значение NULL указано в /home/blah/public_html/blah/blah/insertret.php в строке 9

lilRachie

1 Ответ

0 голосов
/ 24 марта 2012

Если вы не назвали свое поле формы в виде массива, например name="returned[]", полученные значения являются строками, а не массивами.

Так что $_POST['Returned'] будет строкой, которую вам нужно проанализироватьполучить значение, которое вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...