Php 主体登记错误

Php 主体登记错误,php,mysqli,Php,Mysqli,我在这里面临一个问题。首先,我在这里做的是学生的学科注册系统。我设置了一部分代码来限制同一个学生一次又一次地注册同一科目。但不幸的是,这给了我一个相反的效果。我的错误是,当一个学生注册一个科目时,其他学生无法注册该科目,即使他们以前从未注册过。任何帮助都将不胜感激 <?php if(!isset($_POST['submit'])){ exit('Unauthorized access!'); } $name = $_POST['name

我在这里面临一个问题。首先,我在这里做的是学生的学科注册系统。我设置了一部分代码来限制同一个学生一次又一次地注册同一科目。但不幸的是,这给了我一个相反的效果。我的错误是,当一个学生注册一个科目时,其他学生无法注册该科目,即使他们以前从未注册过。任何帮助都将不胜感激

 <?php

    if(!isset($_POST['submit'])){
        exit('Unauthorized access!');
    }

       $name = $_POST['name'];
       $studentid = $_POST['studentid'];
       $program = $_POST['program'];
       $fintake = $_POST['fintake'];
       $courseid = $_POST['courseid'];

       include("include/config.php");

    //this could be the problem,i'm not sure
       $check_query = mysqli_query($link, "SELECT r_id FROM course_registration WHERE r_cid='$courseid' limit 1");

       if(mysqli_fetch_array($check_query))
       {
          echo 'Error:Course ID:',$courseid,' already exists. <a href="javascript:history.back(-1);">Return</a>';
          exit;
       }

       $result = mysqli_query($link, "SELECT * FROM course_list WHERE c_cid = '$courseid'");

       if(mysqli_fetch_array($result))
       {

          $sql = "INSERT INTO course_registration (r_name,r_sid,r_program,r_fintake,r_cid) VALUES('$name','$studentid','$program','$fintake','$courseid')";

          if(mysqli_query($link,$sql))
          {
             exit('Success! Register course successfully. <a href="index.php">Homepage</a>');
          } 
          else 
          {
             echo 'Sorry! Add data failed:',mysqli_error($link),'<br />';
             echo 'Click here <a href="javascript:history.back(-1);">Return</a> retry';
          }
       }
       else
       {
          echo 'Sorry! Wrong course id.','<br />';
          echo 'Click here <a href="javascript:history.back(-1);">Return</a> retry';
       }
    ?>

您可以在where
$check\u query=mysqli\u query($link,“从
课程注册,其中r_cid=“$courseid”和r_sid=“$studentid”)

您的检查
courseid
存在于表中,但需要检查
courseid
是否存在于特定的
student
中,因此您需要像这样添加
where子句

SELECT r_id FROM course_registration WHERE r_cid='$courseid' AND r_sid='$studentid'"

在给定的案例中,您正在检查数据库中的课程id,并且仅限于1,因此,它会在您的案例中报告一个错误。检查学生是否已报名参加课程。您还必须使用courseid检查学生id。也许,此查询可以帮助您:

SELECT r_id FROM course_registration WHERE r_sid='$studentid' AND r_cid='$courseid'"

添加where子句studentid=$studenid。不工作意味着哪一个??但这是一种查找表中已存在的主题和学生的方法。如果我的答案有用,请用绿色勾选它,以供将来的用户参考@StevenCentry(mysqli\u num\u rows($check\u query)>0)代替mysqli\u fetch\u array($check\u query),我认为这会很有帮助
SELECT r_id FROM course_registration WHERE r_sid='$studentid' AND r_cid='$courseid'"