【问题标题】:Inserting data in one table which has two foreign keys (php)在一个有两个外键的表中插入数据(php)
【发布时间】:2014-03-11 12:22:22
【问题描述】:

我是这个网站的新手,我需要一些关于我的记录系统的帮助。我需要将学生的成绩插入到 grades 表中,该表具有以下列:gradeid (PK, auto_increment), studentid (FK ), courseid (FK), midterm, endterm, final, remark

studentid (FK) 从 addrec 表的 studentid (PK) 中获取数字。

courseid (FK) 从 course 表的 courseid (PK) 中获取编号。

这是我已经尝试过的代码(无数次)但仍然没有结果:

<?php
$host="localhost";  
$username="root"; 
$password=""; 
$db_name="studentrec";


$studentid = $_GET['id'];
$sql1="SELECT studentid FROM addrec WHERE studentid='$studentid'";

if(mysql_query($sql1))
{
$courseid = $_GET['courseid'];
$sql2 = "SELECT courseid FROM course WHERE courseid='$courseid'";

if (mysql_query ($sql2)) 
{
$sql3="INSERT INTO grades(`studentid`, `courseid`, `midterm`, `endterm`, `final`,    remark`) VALUES   ('$studentid','$courseid','$_POST[midterm]','$_POST[endterm]','$_POST[final]','$_POST[remark]' )";
}
if (mysql_query($sql3))
{
    // Success
}
else 
{
    die('Error on query 2: ' . mysql_error($con));
}
}
?>

点击提交按钮时没有错误,但我在文本框中输入的数据不会插入到 grades 表中。请帮忙?或建议?我还在研究关于 PHP 的东西。谢谢你。 :)

【问题讨论】:

    标签: php mysql database insert foreign-keys


    【解决方案1】:

    您没有连接到 mySQL:http://www.php.net/manual/en/function.mysql-connect.php

    你可能会注意到 php.net 上的大红色框,你应该转移到 PDO 或 MySQLi。

    【讨论】:

    • 嗨。我要去检查那个。谢谢! :)
    【解决方案2】:

    查询包含错误。试试这个

    INSERT INTO grades(studentid,courseid,midterm,endterm,final,remark) VALUES  ('$studentid','$courseid','$_POST[midterm]','$_POST[endterm]','$_POST[final]','$_POST[remark]' );
    

    【讨论】:

      【解决方案3】:

      先连接数据库,然后再选择数据库

      尝试替换

      $sql3="INSERT INTO grades(`studentid`, `courseid`, `midterm`, `endterm`, `final`,    remark`) VALUES   ('$studentid','$courseid','$_POST[midterm]','$_POST[endterm]','$_POST[final]','$_POST[remark]' )";
      

      $sql3="INSERT INTO grades(`studentid`, `courseid`, `midterm`, `endterm`, `final`,    remark`) VALUES('$studentid','$courseid','".$_POST['midterm']."','".$_POST['endterm']."','".$_POST['final']."','".$_POST['remark']."' )";
      

      【讨论】:

        【解决方案4】:

        你的实际查询是这样的

        INSERT INTO grades(`studentid`, `courseid`, `midterm`, `endterm`, `final`,remark`) 
        VALUES
        ('$studentid','$courseid','$_POST[midterm]','$_POST[endterm]','$_POST[final]','$_POST[remark]' );
        

        您需要在列备注前加上开头的 ` (tild),这样您的查询将看起来像

        INSERT INTO grades(`studentid`, `courseid`, `midterm`, `endterm`, `final`,`remark`) 
        VALUES
        ('$studentid','$courseid','$_POST[midterm]','$_POST[endterm]','$_POST[final]','$_POST[remark]');
        

        【讨论】:

        • 成功!非常感谢! :)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-27
        • 1970-01-01
        • 2015-11-12
        • 2017-06-06
        • 2023-03-29
        • 2013-09-28
        相关资源
        最近更新 更多