如何修复此未定义的通知错误

时间:2012-03-30 16:22:52

标签: php mysql

我正在尝试将$ teacherId插入数据库中的'TeacherId'字段,但为此需要查找教师的用户名'TeacherUsername',以便能够找到与教师用户名匹配的正确TeacherId。

问题是我收到通知说明: 注意:未定义的索引:第27行/Mobile_app/QandATable2.php中的teacherusername,位于:

$teacherid = "SELECT TeacherId FROM (SELECT TeacherUsername from Teacher where TeacherUsername = '".mysql_real_escape_string($_POST['teacherusername'])."')";

为什么它给了我这个通知,因为$ _POST方法没有任何问题,它在底部工作:

<?php echo $_POST['teacherusername']); ?>

以下是完整代码:

<?php>

    session_start();

        $username="xxx";
        $password="xxx";
        $database="mobile_app";

        mysql_connect('localhost',$username,$password);

        @mysql_select_db($database) or die( "Unable to select database");

        $teacherid = "SELECT TeacherId FROM (SELECT TeacherUsername from Teacher where TeacherUsername = '".mysql_real_escape_string($_POST['teacherusername'])."')";

        $sql="INSERT INTO Session (TeacherId)
        VALUES
        (' ". mysql_real_escape_string( $teacherid ) . "')";

        mysql_query($sql);

        mysql_close();
?>

<?php echo $_POST['teacherusername']); ?>

1 个答案:

答案 0 :(得分:1)

如果此脚本仅在发生POST时运行,并且您确信应该设置teacherusername,那么您可能需要var_dump($ _ POST)并仔细检查表单是否正在传递teacherusername字段。

否则,如果字段应该是可选字段,请尝试:

<?php
if (isset($_POST) && isset($_POST['teacherusername'])) {
    echo $_POST['teacherusername'];
}
?>

这将只回显帖子索引是设置的帖子,所以是有问题的字段。你甚至可以添加一个else来正确处理错误。如发回“此字段是必填的”消息。

希望这有帮助,

ISE