我一直有这个错误“mysql_fetch_array()期望参数1是资源,当我尝试在sql中显示count的返回值时,在中给出null。继承我的代码。
$query="SELECT med_rec_ID, COUNT(med_rec_ID)
FROM med_issue
WHERE MONTH(issue_date) = MONTH('2013-02-05')
GROUP BY med_rec_ID";
$result= mysql_query($query);
while($count = mysql_fetch_array($display3)){
echo $count[0];
}
我试图在sql中单独运行查询,它显示2列(med_rec_ID和COUNT)。各位如何显示计数并修复错误?
答案 0 :(得分:1)
首先,不要使用mysql_*
函数,因为它们已被弃用。使用mysqli
或PDO
。
其次,看看你传递给fetch_array
函数的内容。
你可能想做类似的事情:
$link = mysqli_connect("localhost", "admin", "pass", "db_name");
$result = mysqli_query($link, $sql);
while($row = $result->fetch_array(MYSQLI_ASSOC)){
$medIds[] = $row['med_rec_ID'];
...
}
然后通过给它一个别名来修复计数。
请注意,您应该以更安全的方式存储您访问数据库的方式,但我仅使用它来说明该示例。这是一篇相当不错的帖子:How to create global configuration file?
答案 1 :(得分:0)
给它一个别名:
SELECT
med_rec_ID,
COUNT(med_rec_ID) TheCount
FROM med_issue
where MONTH(issue_date) = MONTH('2013-02-05') GROUP BY med_rec_ID
然后您可以使用TheCount
在while循环中选择该列$row['TheCount']
,也可以使用$result
中的lope:
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
echo $row['TheCount'];
}
答案 2 :(得分:0)
您的查询是否正在执行?如果mysql_query没有返回资源,则会发生该错误,以防查询失败
$query="SELECT med_rec_ID, COUNT(med_rec_ID) as C FROM med_issue where MONTH(issue_date) = MONTH('2013-02-05') GROUP BY med_rec_ID";
$result= mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
echo $row["C"];
}
注意:请不要再使用mysql_ *函数