简体   繁体   中英

Storing $_POST with multi-dimensional array in mysql

I have a calendar for which each day has a checkbox like this:

    <input type="hidden" name="uevent['.$urange.']['.$list_day.']['.$month.']['.$year.']" value="0"><input type="checkbox" id="calendarcheck" name="uevent['.$urange.']['.$list_day.']['.$month.']['.$year.']" checked>$list_day

where $urange is one type of calendar out of three.

When submit is clicked, I would like to store in mysql each day whether it was checked or not. So I generated this code:

    print_r($_POST);

    $big_query='INSERT INTO `sdcheckings` (`email`,`urange`,`cyear`,`cmonth`,`cday`,`dchecked`,`tcheck`) VALUES ';

    for($i=0;$i<count($_POST[$row[0]]);$i++)
    {
        for($j=0;$j<count($_POST[$row[0]][$i]);$j++)
        {
            for($k=0;$k<count($_POST[$row[0]][$i][$j]);$k++)
            {
                if($k!=0)
                    $big_query.=', ';
                $dchecked = $_POST[$row[0]][$i][$j][$k];
                $big_query.='('.$_SESSION['email'].',  '.$row[0].',  '.$i.',  '.$j.',  '.$k.', '.$dchecked.', CURRENT_TIMESTAMP) ';
            }
        }
    }
     $adddates = mysql_query($big_query);

When I tested it by checking a couple of dates (february 4th, 2016 and februray 12th, 2016), I got the following:

Array ( [uevent] => Array ( [1] => Array ( [4] => Array ( [02] => Array ( [2016] => on ) [3] => Array ( [2016] => 0 ) ) [5] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [6] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [7] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [8] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [9] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [10] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [11] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [12] => Array ( [02] => Array ( [2016] => on ) [3] => Array ( [2016] => 0 ) ) [13] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [14] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [15] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [16] => Array ( [02] => Array ( [2016 ] => 0 ) [3] => Array ( [2016] => 0 ) ) [17] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [18] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [19] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [20] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [21] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [22] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [23] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [24] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [25] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [26] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [27] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [28] => Array ( [02] => Array ( [2016] => 0 ) [3] => Array ( [2016] => 0 ) ) [29] => Array ( [02] => Array ( [201 6] => 0 ) [3] => Array ( [2016] => 0 ) ) [1] => Array ( [3] => Array ( [2016] => 0 ) ) [2] => Array ( [3] => Array ( [2016] => 0 ) ) [3] => Array ( [3] => Array ( [2016] => 0 ) ) [30] => Array ( [3] => Array ( [2016] => 0 ) ) [31] => Array ( [3] => Array ( [2016] => 0 ) ) ) ) [submit] => Update )

The database did not store anything. I suspect that my loops are not correct. How can that be done?

when printing out at the end $big_query, I get just this:

INSERT INTO `sdcheckings` (`email`,`urange`,`gender`,`cyear`,`cmonth`,`cday`,`dchecked`,`tcheck`) VALUES
        foreach($_POST['uevent'][$row[0]] as $yearnum => $postyear)
        {
            foreach($postyear as $monthnum => $postmonth)
            {
                foreach($postmonth as $daynum => $postday)
                {
                    if($firstcoma>0)
                        $big_query.=', ';
                    $firstcoma++;

                    if(strcmp($postday,"on")==0)
                        $postday=1;

                    $big_query.='("'.$_SESSION['email'].'",  '.$row[0].',  "'.$row[1].'",  '.$yearnum.',  '.$monthnum.',  '.$daynum.', '.$postday.', CURRENT_TIMESTAMP) ';
                }
            }
        }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM