如何在foreach中显示数组-1

时间:2015-02-18 02:58:54

标签: php sql

$query = "SELECT A.Date, B.Fee
FROM [Client] A JOIN [Price] B
ON A.SID = B.SID
WHERE A.Date BETWEEN '$from' AND '$to' AND A.ClientID = '$client'
ORDER BY A.Date";

我使用上述查询显示一段时间内的交易费用(通常为每月),如果一天内没有交易,则应显示当天交易的费用,而当天没有交易数据。例如,我想显示这个:

2015-01-05 | 234,567
2015-01-06 | 123,456
2015-01-07 | 123,456 // this is taken from 0106 cause no transaction on Sat
2015-01-08 | 123,456 // this is taken from 0106 cause no transaction on Sun
2015-01-09 | 345,678

数据库中的数据:

2015-01-05 | 234,567
2015-01-06 | 123,456
2015-01-09 | 345,678

我使用下面的代码显示数据,为了完成当前的技巧,我从日期+ 1和日期+2重新查询数据并显示星期五的数据。问题是在假期时不会这样做(而且我认为没有效率)。

$stmt = $con->prepare($query);
$stmt->execute();
$rows = $stmt->fetchAll();
$num = count($rows);
foreach ($rows as $row) {
  echo date('d-m-Y', strtotime($row['Date']));
  echo number_format($row['Fee'], 0, ",", ".");
  }

我希望有一个解决方案。

1 个答案:

答案 0 :(得分:0)

好的,我通过上面评论的帮助找到了它,这里是sqlfiddle:

http://sqlfiddle.com/#!3/2d6b8/1

信用转到@Turophile。谢谢。