dongyun4010 2013-07-04 12:11
浏览 51
已采纳

如何将表格中的数组数据发布到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 2013-07-04 14:58
    关注

    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";
                 }
            ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)