Как отобразить массив -1 в foreach

0
$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
    Я ответил на один такой вчера: stackoverflow.com/a/28553294/2427560
  • 1
    А вот еще один вопрос для решения другой половины вашего вопроса: stackoverflow.com/questions/8926134/… Вероятно, вы можете прочитать связанные и связанные вопросы для других идей.
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

Хорошо, я понял это с помощью комментария выше, и здесь sqlfiddle:

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

Кредит отправляется @Turophile. Спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню