1

当我尝试在 sql 中显示返回的计数值时,我一直有这个错误“mysql_fetch_array() 期望参数 1 是资源,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)。伙计们,我如何显示计数并修复错误?

4

3 回答 3

1

首先,不要使用mysql_*函数,因为它们已被弃用。使用mysqliPDO

其次,看看你传递给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'];
... 
}

然后通过给它一个别名来修复计数。

请注意,您实际上应该以更安全的方式存储您访问数据库的方式,但我仅使用它来说明示例。这是一篇很好的帖子:如何创建全局配置文件?

于 2013-02-05T07:51:01.620 回答
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'],也可以通过 lope 使用$result

$result = mysql_query($query);

while($row = mysql_fetch_array($result)){
    echo $row['TheCount'];
}
于 2013-02-05T07:42:43.580 回答
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_* 函数

于 2013-02-05T07:44:00.837 回答