如何从一个页面将条目插入到不同的表中?

时间:2012-03-27 21:13:28

标签: php mysql forms

我有4个名为wheelstiresoil_changeother_servicing的表格。

现在,我有一张汽车检查人员的订单。我希望在表单中包含所有这四个选项。所以说有人来换新轮子但不是轮胎,换油和其他服务,他们会把其他领域留空。然后你可能会有一个场景,其中所有四个字段都被填满。那么如何从表格中提交各自的表格呢?

5 个答案:

答案 0 :(得分:3)

表单将提交给单个php脚本。在php中,您必须执行4个单独的查询才能将数据放入正确的表中。例如,如果你在php中有这个:

$wheels = $_REQUEST['wheels'];
$tires  = $_REQUEST['tires'];
$oil_ch = $_REQUEST['oil_change'];
$other  = $_REQUEST['other_servicing'];

mysql_query("INSERT INTO wheels (wheels) VALUES $wheels");
mysql_query("INSERT INTO tires (tires) VALUES $tires");
mysql_query("INSERT INTO oil_change (oil_change) VALUES $oil_ch");
mysql_query("INSERT INTO other_servicing (other_servicing) VALUES $other");

当然我不知道你的表的模式,但这只是你如何将它分成4个查询的一个例子。

但是,我建议你不要有4个表,只需要一个表,然后将每个表改为一列。可能还有其他细节我不知道哪些需要单独的表,但是你给出的信息似乎更简单。

答案 1 :(得分:2)

这不应该出现任何问题。接收表单数据的PHP页面可以根据需要运行任意数量的查询。代码的骨架就像:

if($_POST['wheels']) { //if they filled in the field for wheels...
    mysql_query("insert into wheels...");
}
if($_POST['tires']) { //if they filled in the field for tires...
    mysql_query("insert into tires...");
}
if($_POST['oil_change']) { //if they filled in the field for oil_change...
    mysql_query("insert into oil_change...");
}
... etc

答案 2 :(得分:1)

对于每个表单,你会有这样的东西:

    if($_POST['wheels']){mysql_query("INSERT INTO wheel_table (column1) VALUES (" . 'mysql_real_escape_string($_POST['wheels']) . "')")

检查表单元素是否已设置,或者是否有值,如果是,则在相应的表中创建一个新行。

如果表单元素的名称不是'wheels',则您将$_POST['wheels']更改为$_POST['form_element_name'],如果表的名称不是wheel_table,则必须更改该名称,并且列名。

这一切都必须包装在一个

答案 3 :(得分:1)

在表单操作中,您将指定将处理表单的php文件。

在php脚本文件中,您将测试表单的哪些部分被使用并插入相应的表中。

尝试将每个表的测试和插入分开,以方便您。

答案 4 :(得分:1)

这可能很有用

if(isset($_POST['submit'])) // assuming you have submit button with name 'submit'
{
    $fields['wheels'] = isset($_POST['wheels']) ? $_POST['wheels'] : null;
    $fields['tires']  = isset($_POST['tires']) ? $_POST['tires'] : null;
    $fields['oil_change'] = isset($_POST['oil_change']) ? $_POST['oil_change'] : null;
    $fields['other_servicing']  = isset($_POST['other_servicing']) ? $_POST['other_servicing'] : null;
    $q="";
    foreach($fieldsas $key=>$val)
    {
        if($val!==null)
        {
            $q="insert into ".$key." values('".mysql_real_escape_string($val)."')";
            mysql_query($q);
        }

    }
    if($q==="") echo " Please fill up at least one field !";
}

这只是核心思想,如果用户一次提交多个字段,您可以执行多个查询,并且可能需要添加其他值(即user_id)。