如果选中复选框,则在多个表中插入数据

时间:2011-12-07 11:32:56

标签: php javascript mysql

我正在创建一个简单要求的用户注册表单,并使用简单查询插入数据

<?php

if (isset($_POST) && isset($_POST["form_register"]))
{
    $insert_query = "INSERT INTO users SET
                        users.first_name='" . mysql_real_escape_string($_POST['fname']) . "',
                        users.last_name='" . mysql_real_escape_string($_POST['lname']) . "',
                        users.email='" . mysql_real_escape_string($_POST['email']) . "',
                        users.password='" . mysql_real_escape_string($_POST['password']) . "';";

    if (mysql_query($insert_query))
    {
        $_SESSION['messageType'] = "success_msg";
    }
    else
    {
        $_SESSION['message'] = "-Registration not Successful.";
        $_SESSION['messageType'] = "error_msg";
    }
}
?>

但是现在我有3个额外的字段。如果我选中一个复选框,那么另外两个字段数据也会进入另一个表中并同时拥有此数据。我怎么能这样做?

这是我的旧代码......现在我添加了3个新列,1个复选框和2个文本框。

查询是,如果选中复选框,则其他2个列值将进入另一个表,如果未选中复选框,则执行1个查询。

2 个答案:

答案 0 :(得分:0)

我们确实需要查看您的表单,因为您提供给我们的内容过于模糊,另外,请检查$insert_query的结束语法。

如果我理解了正确的问题,那么最终的代码应该是这样的。

告诉我,如果我错了

<?php 
if(isset($_POST) && isset ($_POST["form_register"])){
    $insert_query1 = "INSERT INTO users SET
        first_name='".mysql_real_escape_string($_POST['fname'])."',
        last_name='".mysql_real_escape_string($_POST['lname'])."',
        email='".mysql_real_escape_string($_POST['email'])."',
        password='".mysql_real_escape_string($_POST['password'])."'";

    if(mysql_query($insert_query)){
        $_SESSION['messageType'] = "success_msg";
    } else {
        $_SESSION['message']  = "-Registration not Successful.";
        $_SESSION['messageType'] = "error_msg";
    }

    if($_POST['checkbox']) {
        $insert_query2 = ""; //Put your second MYSQL Query here
    }

    if(mysql_query($insert_query2)){
        $_SESSION['messageType2'] = "success_msg";
    } else {
        $_SESSION['message2']  = "-Registration not Successful.";
        $_SESSION['messageType2'] = "error_msg";
    }
}
?>

答案 1 :(得分:0)

如果我理解正确,你想在另一个表中插入数据IF用户选中复选框。

所以你必须使用这样的另一个IF:

if (mysql_query($insert_query))
{
    if (/* here your condition for checkbox*/)
    {
        /* here your query for the secund table and the new two values*/
    }

    $_SESSION['messageType'] = "success_msg";
}

请注意,在第一个 成功之后运行secund查询非常重要,因为如果第一个因某种原因失败,secund将不会执行。< / p>