我正在建立一个简单的网站,帮助大学的学生和教师。
我面临有关以下查询的问题:教师检索在他/她教授的课程中注册的学生的 ID 和姓名。
我有以下表格,后跟它们的字段:
注册(课程代码 - 学生证 - 年级)
Studnet (ID - 名称)
如您所见,两个表之间的唯一连接器是学生 ID。
我写的代码是
<?
session_start();
$COCODE = $_SESSION['GlobalCode'];
$result11 = mysql_query("SELECT * FROM Enrollment WHERE CourseCode = '$COCODE' ") ;
$row11 = mysql_fetch_array($result11);
$StID = $row11['StudentID'];
$result22 = mysql_query("SELECT * FROM Student where StudentID= '$StID' ") ;
echo "<table border cellpadding=3>";
while($row123 = mysql_fetch_array($result22))
{
echo "<tr>";
echo "<td>".$row123['ID']."</td> ";
echo "<td>".$row123['Name']."</td> ";
echo "</tr>";
}
echo "</table>";
?>
我正在尝试做的是从注册表中检索课程代码,然后通过 ID 检索学生姓名。
问题是我收到以下消息:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
我希望你能帮我解决问题。
谢谢
您是否尝试缩小导致问题的查询范围?这将是你的第一步。其他一些指针:
-
您需要检查每个 SQL 查询是否成功并返回一个有效值,然后再在下一个查询中使用它......否则,该查询将导致错误。
-
尝试使用:
mysql_query ($your_query) or die ('Error: '.mysql_error ());
for each 查询以获取更详细的错误消息。(仅用于调试,不用于生产)
该错误通常意味着您的查询有问题,或者您可能没有连接到数据库。如果这是第一个问题,请尝试将查询更改为以下内容:
$result11 = mysql_query("SELECT * FROM `Enrollment` WHERE `CourseCode` = '$COCODE' ");
否则,请检查数据库连接。
最后,我解决了它。
我做了以下更改:
$result11 = mysql_query("SELECT * FROM Enrollment WHERE CourseCode = '$InstID' ") or die ('Error: '.mysql_error ());
echo "<table border cellpadding=3>";
while($row11 = mysql_fetch_array($result11))
{
$StID = $row11['StudentID'];
$result22 = mysql_query("SELECT * FROM Students where ID = '$StID' ") or die ('Error: '.mysql_error ());
while($row123 = mysql_fetch_array($result22))
{
echo "<tr>";
echo "<td>".$row123['ID']."</td> ";
echo "<td>".$row123['Name']."</td> ";
echo "</tr>";
}
}
echo "</table>";
mysql_close($con);
?>
谢谢