如何将表格中的数组数据发布到mysql DB

please forgive naivety and innocence...I am not a programmer! I have spent the best part of 4 days on this and I am ready for a PHP lesson or intense therapy.

Scenario: DB built in mySQL. Table with all columns varchar(50) except ID and age - both INT. See below, I just need a 'Yes' value in the checkbox linked colums/fields.

I want to insert data with a form that has both textboxes and checkboxes. I thought best way to do this was php array...??

Form:

<form action="process.php" method="post" enctype="multipart/form-data">
  <label>Childname
  <input type="text" name="textfield[childname]" />
  </label>
  <p>
    <label>Age
    <input type="text" name="textfield[age]" />
    </label>
  </p>
  <p>
    <label>Parent Name
    <input type="text" name="textfield[parent_name]" />
    </label>
  </p>
  <p>
    <label>Contact Number
    <input type="text" name="textfield[contact_no]" />
    </label>
  </p>
  <p>Subjects<br />
    <label>
    <input type="checkbox" name="checkbox[scratch]" value="checkbox" />
    Scratch</label> 
    <label>
    <input type="checkbox" name="checkbox[app_inventor]" value="checkbox" />
    App Inventor</label>
    <label>
    <input type="checkbox" name="checkbox[html]" value="checkbox" />
    HTML</label>
  </p>
  <p>Sessions Attended<br />
    <label>
    <input type="checkbox" name="checkbox[nov12]" value="checkbox" />
    Nov 2012</label>
  </p>
  <p>
    <label>
    <input type="checkbox" name="checkbox[dec12]" value="checkbox" />
    Dec 2012</label>
  </p>
  <p>&nbsp;</p>
  <p>
    <label>
    <input type="submit" name="Submit" value="Submit" />
    </label>
  </p>
</form>

PHP script:

<?php

include("config.php");

$childrecord = array("childname","age","parent_name","contact_no","scratch","app_inventor","html");

if(isset($_POST['childrecord'])){
    $childrecord = $_POST['childrecord'];
    $i = 0;
    foreach ($childrecord as $key => $value); {
    $i++;

    $sql="INSERT INTO tblchildren (childrecord) VALUES ($_POST['childrecord'])";
mysql_query($sql);

}

?>

Please help! Thanks in advance....

You want to store your form data in your code.

For this you have to make following changes in your code and database.

In Form

note: Input field value should be relevant.

With your existing html code your process.php will get data in this structure


        Array
        (
            [textfield] => Array
                (
                    [childname] => dang
                    [age] => 18
                    [parent_name] => doctor
                    [contact_no] => 100
                )

            [checkbox] => Array
                (
                    [scratch] => checkbox
                    [app_inventor] => checkbox
                    [html] => checkbox
                    [nov12] => checkbox
                    [dec12] => checkbox
                )

            [Submit] => Submit
        )

So you need to modify your process.php

Before that you have to modify structure of your table, follow these steps

1. Delete your existing table
2. Create new table




 DROP TABLE tblchildren ;


         CREATE TABLE tblchildren
         (
           id INT AUTO_INCREMENT PRIMARY KEY,
           childname VARCHAR(30),
           age TINYINT,
           parent_name VARCHAR(30),
          contact_no VARCHAR(20),
           scratch ENUM('yes','no'),
           app_inventor ENUM('yes','no'),
           html ENUM('yes','no'),
           sesNov12Attnd ENUM('yes','no'),
           sesDec12Attnd ENUM('yes','no')
         );

Since you are new to php so i have used basic function, I will suggest you to use switch from mysql to mysqli

process.php

        <?php

            $con=mysql_connect("hostname","username","pass");
            $db=mysql_select_db('dbname', $con);

            //check form is submitted    
            if(isset($_POST)){

            //mysql_real_escape_string() prevents from sql injection.
            $childname= mysql_real_escape_string($_POST['textfield']['childname']);
            $age=mysql_real_escape_string($_POST['textfield']['age']);
            $parentName=mysql_real_escape_string($_POST['textfield']['parent_name']);
            $contactNo=mysql_real_escape_string($_POST['textfield']['contact_no']);


            $scratch=isset($_POST['checkbox']['scratch'])?'yes':'no';
            $appInventor=isset($_POST['checkbox']['app_inventor'])?'yes':'no';
            $html=isset($_POST['checkbox']['html'])?'yes':'no';
            $nov12=isset($_POST['checkbox']['nov12'])?'yes':'no';
            $dec12=isset($_POST['checkbox']['dec12'])?'yes':'no';

            $sql="INSERT INTO tblchildren(childname, age, parent_name, contact_no, scratch,app_inventor,html, sesNov12Attnd, sesDec12Attnd )
            VALUES
            ('$childname',$age,'$parentName','$contactNo','$scratch','$appInventor','$html','$nov12','$dec12')";

            mysql_query($sql);
            }else{
                echo "Form Not SUbmitted";
             }
        ?>