if (isset($_POST['enroll'])) {
$student_id = intval($session->user_id);
$course_id = $course_id;
$date = date('Y-m-d');
我需要PDO函数,如果用户course_id已经存在,则返回false。
***if ($enroll->student_id has this->course_id) {
$message = "<b>U already enrolled continue</b>";
}else{***
$enroll->user_id = $user_id;
$enroll->course_id = $course_id;
$enroll->en_date = $date;
$enroll->create();
// }
这是我的学生表格列
这是我的课程表
我还有注册表
我需要验证用户是否已经使用PHP PDO功能开课 还有一些学生参加了特定的课程。
答案 0 :(得分:1)
此查询将验证学生是否已注册上述课程:
SELECT id FROM enrolled_table WHERE student_id = STUDENT_ID_PARAMETER and course_id = COURSE_ID_PARAMETER
此查询将为您提供每门课程的学生人数:
SELECT count(id), course_id FROM enrolled_table
WHERE student_id not null
GROUP BY course_id
ORDER BY count(id) DESC;
答案 1 :(得分:1)
您可以使用以下功能检查用户是否已注册。
function user_enroll($student_id, $course_id){
$stmt = $conn->prepare('SELECT * FROM enroll WHERE student_id=? AND course_id=?');
$stmt->bindParam(1, $student_id, PDO::PARAM_INT);
$stmt->bindParam(2, $course_id, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if($row)
{
return false; // course already taken
}
return true; // course not taken
}
同时执行返回用户注册和注册课程的学生总数。
function user_enroll($student_id, $course_id){
$stmt = $conn->prepare('SELECT * FROM enroll WHERE student_id=? AND course_id=?');
$stmt->bindParam(1, $student_id, PDO::PARAM_INT);
$stmt->bindParam(2, $course_id, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$total_enrolled_students = $pdo->query('select count(*) from enroll WHERE course_id='.$course_id)->fetchColumn();
$ret_data = array('user_enroll' => true,'total_std_enrolled'=>$total_enrolled_students);
if($row)
{
$ret_data['user_enroll'] = false;
return $ret_data; // course already taken
}
return $ret_data; // course not taken
所以这个函数返回带有两个元素的数组。一个是 user_enroll ,用于是否注册的学生,另一个是 total_std_enrolled ,这是当然学生总数。