繁体   English   中英

一个php / MySQL表单的两个表有一个公共字段?

[英]Two tables for one php/MySQL form with a common field?

我的表格有学生证,电子邮件和姓名...以及复选框

我设法在表格中存储了Studentid和复选框,并创建了一个新表格来存储与学生ID相关的所有其他信息

表1 Studentid -----复选框选择...

表2学生ID -----电子邮件----名称

我必须在查询中插入一个,一个用于Studentid和复选框,一个用于(Table2)

$sql="INSERT INTO courses (studentid, ckb)
    VALUES ('$studentid', '$cc')";

    $sql2="INSERT INTO studentinfo (studentid, email, name)
    VALUES ('$studentid', '$email', $fname)";

$ sql2无法存储数据,但是$ sql存储数据很好,我该如何解决?

这是完整的代码

    $studentid = mysqli_real_escape_string($dbcon, $_GET['studentid']); //echo $studentid;
        $email = $dbcon->real_escape_string($_GET['email']);
        $fname = $dbcon->real_escape_string($_GET['fname']);

$name = $_GET['ckb'];
if(isset($_GET['ckb'])) //checkboxes
{
foreach ($name as $courcess){
$cc=$cc. $courcess.',';
}
}


    $sql="INSERT INTO courses (studentid, ckb)
    VALUES ('$studentid', '$cc')";

        $sql2="INSERT INTO studentinfo (studentid, email, name)
    VALUES ('$studentid', '$email', $fname)";


    if (!mysqli_query($dbcon,$sql)) {
    die('Error: ' . mysqli_error($dbcon));
}
echo "  Thank you for using IME Virtual Registeration  ";   
        mysqli_close($dbcon);
?>

我的表单方法是GET

我建议您使用prepare语句和transaction代替mysqli query。

您忘记了带有第二个查询的mysqli_query:

 $sql="INSERT INTO courses (studentid, ckb)
VALUES ('{$studentid}', '{$cc}')";

    $sql2="INSERT INTO studentinfo (studentid, email, name)
VALUES ('{$studentid}', '{$email}', '{$fname}')";


    if (!mysqli_query($dbcon,$sql)) {
     die('Error: ' . mysqli_error($dbcon));
     }

    if (!mysqli_query($dbcon,$sql2)) {
     die('Error: ' . mysqli_error($dbcon));
    }
 echo "  Thank you for using IME Virtual Registeration  ";   
    mysqli_close($dbcon);
?>

这是带有prepare语句的示例,您不需要使用real_escape_string“

$stmt = $mysqli->prepare("INSERT INTO courses VALUES (?, ?)");  
$stmt->bind_param('ds', $studentid, $cc);
$stmt->execute();


$stmt = $mysqli->prepare("INSERT INTO studentinfo VALUES (?, ?, ?)");  
$stmt->bind_param('dss', $studentid, $email, $fname);
$stmt->execute();

请尝试这个

if (!mysqli_query($dbcon,$sql)) { die('Error: ' . mysqli_error($dbcon)); } else { if (!mysqli_query($dbcon,$sql2)) { die('Error: ' . mysqli_error($dbcon)); } else { echo " Thank you for using IME Virtual Registeration "; } } mysqli_close($dbcon);

 if (!mysqli_query($dbcon,$sql)) 
 {
    die('Error: ' . mysqli_error($dbcon));
 }
 else
 {

    if (!mysqli_query($dbcon,$sql2)) {
      die('Error: ' . mysqli_error($dbcon));
    }
}

Hope it will help.....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM