【问题标题】:how to display value of mysql sum query如何显示mysql sum查询的值
【发布时间】:2011-09-07 19:44:44
【问题描述】:

我试图获取一个月的总销售额

$aug11 = mysql_query("SELECT SUM(price) FROM table WHERE sales_date LIKE '08/%/2011' ");

当我回显 $aug11 时,我收到资源 id# 错误。我也试过这样做

$test1 = mysql_fetch_array($aug11);

当我回显 $test1 时,它只会显示“数组”。

是否绝对有必要在原始查询中按 sales_date 放置一个 GROUP,然后有一个 while 循环来抓取数组并让我回显这些值?

除了 8 月份的“价格”总和之外,我真的不需要任何其他值。

有人可以向我解释一下如何在没有 while 循环的情况下显示我需要的值吗?

【问题讨论】:

  • 您正在获取数组,因此 test1 是数组.. 考虑 var_dump($test1);或 $test1[0] 访问您正在寻找的值..
  • RTFM: php.net/mysql_fetch_array 当一个函数被称为 'fetch_array' 时,也许你应该假设它实际上返回(惊喜!)一个数组。
  • 1. Salesdate 应该是日期,而不是 varchar 2. 不要使用 like,使用 where sales_date BETWEEN '2011-08-01' AND '2011-08-31' 3. 如果您想要快速查询,请在 sales_date 上建立索引。
  • 感谢您的所有 cmets!如果没有他们中的一些人的讥讽居高临下的语气,我们本可以做到的(Marc B 感到惊讶?),但我们仍然非常感谢他们的帮助。祝大家周末愉快

标签: php mysql sum


【解决方案1】:

用它来获取总和值

$test1[0];

【讨论】:

  • 非常感谢!最后一件事,有没有办法将值四舍五入到最接近的 2 位小数,例如 2100.563000 变为 2100.56?
  • round($test1[0],2);RTFM! :-)
【解决方案2】:
echo $test1[0]; // returns the sum

【讨论】:

    【解决方案3】:

    $aug11 不是查询字符串,它是查询的结果。当您从结果中获取一个数组时,它是一个值数组,而不是一个标量。我想你想这样做:

    $query = "SELECT SUM(price) FROM table WHERE sales_date LIKE '08/%/2011'";
    $aug11 = mysql_query($query);
    $row = mysql_fetch_array($aug11);
    $test1 = $aug11[0];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 2011-04-10
      • 2021-11-14
      • 1970-01-01
      • 2021-02-01
      • 2016-01-26
      相关资源
      最近更新 更多