You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP关联查询求助:通过教师ID与课程ID获取lectures表信息失败

问题分析与修复建议

先梳理下你代码里的几个关键问题,这应该就是“获取课程ID功能失效”的核心原因:

  • SQL语法错误:第一个查询课程ID的语句漏掉了WHERE关键字,数据库根本无法识别你的查询条件,自然拿不到正确的课程ID。
  • 不安全的参数处理:直接把未过滤的$_GET['id']拼进SQL里,不仅有SQL注入风险,还可能因为参数格式问题导致查询失败。
  • 变量传递与查询逻辑断层:后续查询课时的语句未完成,而且课程ID的变量也没正确传递到后续查询中。

分步修复方案

  1. 修复课程ID查询的SQL语法
    原错误代码:

    $q=mysqli_query($con,"select id from courses id='$getid' ");
    

    修正后(添加WHERE关键字):

    $q=mysqli_query($con,"select id from courses WHERE id='$getid' ");
    
  2. 安全处理GET参数(推荐用预处理语句)
    不要直接使用未校验的$_GET参数,预处理语句能彻底避免SQL注入,同时保证参数格式合法:

    // 先判断参数是否存在且为数字类型
    if(isset($_GET['id']) && is_numeric($_GET['id'])){
        // 用预处理语句查询课程ID
        $stmt = $con->prepare("SELECT id FROM courses WHERE id = ?");
        $stmt->bind_param("i", $_GET['id']);
        $stmt->execute();
        $result = $stmt->get_result();
        $course_data = $result->fetch_assoc();
        $course_id = $course_data['id']; // 把课程ID存入变量,供后续使用
    } else {
        // 参数不合法时的处理,比如跳转到错误页或提示用户
        header("Location: invalid_course.php");
        exit;
    }
    
  3. 完善课时查询逻辑
    确保同时用教师ID和课程ID作为查询条件,并且变量正确传递:

    // 先验证会话中的教师ID是否存在
    if(isset($_SESSION['user']['id'])){
        $teachid = $_SESSION['user']['id'];
        // 同样用预处理语句查询课时
        $stmt = $con->prepare("SELECT * FROM lectures WHERE teach_id = ? AND course_id = ?");
        $stmt->bind_param("ii", $teachid, $course_id);
        $stmt->execute();
        $lectures_result = $stmt->get_result();
        
        // 遍历输出课时信息
        while($lecture = $lectures_result->fetch_assoc()){
            echo "课时标题:" . $lecture['title'] . "<br>";
            echo "课时时长:" . $lecture['duration'] . "<br><hr>";
        }
    } else {
        // 教师未登录时的处理,比如跳转登录页
        header("Location: teacher_login.php");
        exit;
    }
    

额外调试小技巧

如果还是有问题,可以在查询后添加错误捕获,查看数据库返回的具体错误信息:

// 比如在mysqli_query后添加
if(!$q){
    echo "数据库错误:" . mysqli_error($con);
    exit;
}

内容的提问来源于stack exchange,提问作者Hyunaed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:26:11