dongyun4010
dongyun4010
2013-07-04 12:11

如何将表格中的数组数据发布到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....

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • duanjiebian6712 duanjiebian6712 8年前

    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";
                 }
            ?>
    
    点赞 评论 复制链接分享