这行SQL有什么问题?

时间:2013-08-22 14:06:34

标签: mysql sql

SELECT Batch.NumStud 
FROM Batch 
WHERE CourseID='$courseid'
INNER JOIN Course 
ON Batch.CourseID=Course.CourseID"

表示mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>F:\AppServ\www\anNoECourse.php

的错误 显示

。编写此代码是为了将数据输入谷歌图表。

2 个答案:

答案 0 :(得分:7)

您将SQL置于错误的订单(JOIN和WHERE已切换):

  SELECT Batch.NumStud 
    FROM Batch INNER JOIN Course 
           ON Batch.CourseID = Course.CourseID
   WHERE Course.CourseID = '$courseid'

看来,您的查询可以简化(检查您的数据):

  select Batch.NumStud 
    from Batch
   where Batch.CourseID = '$courseid'

答案 1 :(得分:0)

我认为错误有点复杂。由于您的SQL无效,您无法获得结果集。您的PHP代码无法正确处理此案例!

因此,除了像其他人建议的那样更正您的SQL之外,请确保处理您的PHP代码中没有结果或查询错误的情况!

解决方案的第二部分如下:

$result = mysql_query(...);
if ($result)
{
    while (...)
        ...
}

这可以确保mysql_query实际返回结果集而不是false,如果出现错误(由于您的SQL代码无效,但在其他情况下也是如此)。因此,修复SQL并不足以使脚本出错。

但是,再次,不再使用mysql_....函数!它们已被弃用。