当从MySQL查询返回空结果时,在数组上分配零值

时间:2012-03-02 07:26:25

标签: php mysql

我可以指定" 0"返回没有MySQL查询结果的数组上的值?

如果是的话,你能告诉我怎么做吗?

我的代码是这样的:

    $grapes_query = mysql_query("SELECT fruitDate, fruitName, COUNT(*) FROM tbl_fruits WHERE fruitName='Grapes' GROUP BY 

    fruitDate");
    while ($grapes = mysql_fetch_assoc($grapes_query)){
    $grapes_array[]=$grapes['COUNT(*)'];

}

如果在一天中没有找到葡萄,我可以分配" 0"到它的数组值?

让我们说1/1/2012 =计算3个葡萄,1/2/2012 =没有计算葡萄,1/3/2012 =计算5个葡萄......所以阵列应该是这样的

$grapes_array[0]=3;
$grapes_array[1]= <-- i want to assign a string or number here when a MySQL query is empty.
$grapes_array[2]=3;

如果没有找到任何值,我会收到错误。

更新:

enter image description here

水果名称应该是葡萄...... :(

更新2:

HERE是我正在使用的示例数据库。

enter image description here

以下是我获得更新后的查询的结果

enter image description here

2 个答案:

答案 0 :(得分:2)

更新的查询将提供有水果计数的日期,但当天没有计算葡萄

$grapes_query = mysql_query("SELECT f.fruitDate, IF(ISNULL(f1.count), 0, f1.count) as count FROM tbl_fruits f
    LEFT JOIN (SELECT fruitName, fruitDate, COUNT(*) as count from tbl_fruits d WHERE d.fruitName='Grapes' GROUP BY d.fruitDate) as f1 ON (f.fruitDate = f1.fruitDate) 
    GROUP BY f.fruitDate");
while ($grapes = mysql_fetch_assoc($grapes_query)){
   // use the fruitDate as a key for the array
   $grapes_array[$grapes['fruitDate']]= $grapes['count'];

}

答案 1 :(得分:1)

你可以这样做:

  • 从表格中选择最短和最长日期
  • 使用date =&gt;填充输出数组0对(将每个日期初始化为零)
  • 运行您的脚本,但不是使用[]创建新的数字索引,而是使用日期作为键