Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将单个字段静态数据和多个(字段)行动态数据从PHP表单插入MySQL数据库_Php_Mysql_Forms - Fatal编程技术网

如何将单个字段静态数据和多个(字段)行动态数据从PHP表单插入MySQL数据库

如何将单个字段静态数据和多个(字段)行动态数据从PHP表单插入MySQL数据库,php,mysql,forms,Php,Mysql,Forms,****注**:我在这个网站上问了一个类似的问题,但我已经对最初的问题做了大量的编辑,我相信它可以作为一个新问题提交。虽然目标相同,但我正在变得更直接、简洁和清晰,以便有希望获得更多的回应** 我已经开始学习PHP和MySQL(完全的新手),并且我已经创建了一个包含问题和选项表的数据库,作为问答应用程序项目的一部分来帮助我学习 我试图通过PHP处理表单提交问题和选项来填充数据库 我在表单的问题部分有四行字段 第一行是元数据 下面的三行(每个以文本框结尾)表示要在数据库中输入的三个独立问题行 元

****注**:我在这个网站上问了一个类似的问题,但我已经对最初的问题做了大量的编辑,我相信它可以作为一个新问题提交。虽然目标相同,但我正在变得更直接、简洁和清晰,以便有希望获得更多的回应**

我已经开始学习PHP和MySQL(完全的新手),并且我已经创建了一个包含问题和选项表的数据库,作为问答应用程序项目的一部分来帮助我学习

我试图通过PHP处理表单提交问题和选项来填充数据库

  • 我在表单的问题部分有四行字段
  • 第一行是元数据
  • 下面的三行(每个以文本框结尾)表示要在数据库中输入的三个独立问题行
  • 元数据行包含我希望在提交到数据库后填充三个问题行中相应列的数据
这就是我想要得到的:

但随着元数据的填写(而不是零)。元数据应根据表单中为各种提交选择的内容而有所不同,但对于给定提交同时插入的任意数量的行,元数据应相同

我目前拥有的:

[资料输入表格]

带有单字段常量元数据的表单(变量行)问题部分

        <div class="questinfo">
            <div class="questmetadata">

            <select name="questfield[0][subject_id]">
                <option>BA</option>
                <option>MY</option>
                <option>PA</option>
                <option>BB</option>
                <option>CC</option>
                <option>UA</option>
                <option>HM</option>
                <option>CG</option>

            </select>
             <input name="questfield[0][chapter_id]">

            <input name="questfield[0][topic_id]">
             <input name="questfield[0][is_active]">
            <select name="questfield[0][type]">
                <option>P</option>
                <option>L</option>
            </select>

            <select name="questfield[0][level]">
                <option>1<option>
                <option>2 II<option>
                <option>3<option>
            </select>

            </div>

            <div class="questrow">
            <input  name="questfield[1][questid]">
            <input  name="questfield[1][numero]">
            <textarea  name="questfield[1][question]"></textarea>
            </div>

<div class="questfield">
            <input  name="questfield[2][id]">
            <input  name="questfield[2][numero]">
            <input name= "questfield[2][is_active]">
            <textarea  name="questfield[2][question]"></textarea>
        </div>


            <div class="questrow">
            <input  name="questfield[3][questid]">
            <input  name="questfield[3][numero]">
            <textarea  name="questfield[3][question]"></textarea>
            </div>

我该怎么做?谢谢

StackOverflow不是代码生成器;)你很难找到一个有病人的程序员来阅读所有的代码并制定整个解决方案。试着把你的问题分成更小、更“吸引人”的部分(对程序员来说是如此),以便更快地得到答案(或者永远得到答案)。一个很好的技巧是描述你的代码的作用,并消除所有不必要的代码和单词。我会在将来记住你的建议。谢谢。StackOverflow不是代码生成器;)你很难找到一个有病人的程序员来阅读所有的代码并制定整个解决方案。试着把你的问题分成更小、更“吸引人”的部分(对程序员来说是如此),以便更快地得到答案(或者永远得到答案)。一个很好的技巧是描述你的代码的作用,并消除所有不必要的代码和单词。我会在将来记住你的建议。非常感谢。
    <div class="optionfield">
        <input type="text" name ="optionfield[0][optid]">
        <input type="text" name ="optionfield[0][choice]">
        <input type="text" name ="optionfield[0][question_numero]">
        <input type="checkbox" name ="optionfield[0][is_answer]">

        </div>

        <div class="optionfield">
        <input type="text" name ="optionfield[1][optid]">
        <input type="text" name ="optionfield[1][choice]">
        <input type="text" name ="optionfield[1][question_numero]">
        <input type="checkbox" name ="optionfield[1][is_answer]">
        </div>


        <div class="optionfield">
        <input type="text" name ="optionfield[2][optid]">
        <input type="text" name ="optionfield[2][choice]">
        <input type="text" name ="optionfield[2][question_numero]">
        <input type="checkbox" name ="optionfield[2][is_answer]">
        </div>


        <div class="optionfield">
        <input type="text" name ="optionfield[3][optid]">
        <input type="text" name ="optionfield[3][choice]">
        <input type="text" name ="optionfield[3][question_numero]">
        <input type="checkbox" name ="optionfield[3][is_answer]">
        </div>
    $optsql=" INSERT INTO 
    options
    SET
    optid=:optid,
    question_numero=:question_numero,
    choice=:choice,
    is_answer=:is_answer,
    answer_explanation=:answer_explanation";

$questsql=" INSERT INTO questions
            SET
            questid=:questid,
            numero=:numero,
            question=:question,
            subject_id=:subject_id,
            chapter_id=:chapter_id,
            topic_id=:topic_id,
            type=:type,
            level=:level,
            is_active=:is_active

        ";


$optstmt=$clsdb->prepare($optsql);
$queststmt=$clsdb->prepare($questsql);



    foreach($_POST['optionfield'] as $optinput){

    $optdata= array(

        'optid'=>$optinput['optid'],
        'question_numero'=>$optinput['question_numero'],
        'choice'=>$optinput['choice'],
        'answer_explanation'=>$optinput['answer_explanation'],
        'is_answer'=>$optinput['is_answer']);

$optstmt->execute($optdata);


}

foreach($_POST['questfield'] as $questinput){

$questdata= array(

        'questid'=>$questinput['questid'],
        'numero'=>$questinput['numero'],
        'question'=>$questinput['question'],
        'subject_id'=>$questinput['subject_id'],
        'chapter_id'=>$questinput['chapter_id'],
        'topic_id'=>$questinput['topic_id'],
        'type'=>$questinput['type'],
        'level'=>$questinput['level'],
        'is_active'=>$questinput['is_active']);

        $queststmt->execute($questdata);

}