У меня есть база данных, и я извлекая следующие поля:базы данных логики запроса вопрос
BookDate - AirlineCode - BkngVal
То, что я хочу сделать, это сохранить вывод в файл JSON в следующем формате:
[{
Date: 2016-01-03,
Airline Code: BA,
Airline BkngVal: 1234.00,
Airline Code: VS,
Airline BkngVal: 123.00,
Airline Code: EK,
Airline BkngVal: 8743.09
},
{
Date: 2016-01-04
Airline Code: UA,
Airline BkngVal: 134.00,
Airline Code: BA,
Airline BkngVal: 129.00,
Airline Code: 9W,
Airline BkngVal: 823.09
}]
и т. д. для каждой даты, имеющейся в базе данных. Проблема в том, что в тот же день в каждой авиакомпании производится несколько заказов, поэтому я пытаюсь найти наилучший способ группировать даты, а затем добавлять данные бронирования в каждую авиакомпанию, где она использует эту дату, а затем добавить это в json-файл, где дата является основным ключом.
Первоначальный запрос MySql является:
$stmt = $db->prepare('SELECT BookDate, BkngVal, Market, AirlineCode
FROM sales
WHERE (Market = :market)
AND (BookDate >= :startDate)
AND (BookDate <= :endDate)
ORDER BY BookDate ASC');
$stmt->execute(array(
'market' => $location,
'startDate' => $start,
'endDate' => $end
));
рынка является страной, которую я хочу смотреть на так что позволяет предположить, что в Великобритании. Поэтому я смотрю на все рейсы, забронированные в Великобритании.
Как это сделать, и добавить val в авиакомпанию, а затем добавить его в json-файл.
while ($row = $stmt->fetch()) {
if ($row['BookDate'] == $BookDate) {
$airline_sales_made_per_day += $row['BkngVal'];
}
else {
if ($count > 0) {
$data[] = array(
'date' => $BookDate,
'airline sales made per day' => $airline_sales_made_per_day
);
}
$count++;
}
}
Я знаю, что это не будет работать, как все это делает создать несколько дат с заказом нескольких авиакомпаний и значениями поэтому в основном делает запрос в массив.
Я просто не могу подумать, как это сделать.
Любая помощь была бы принята с благодарностью.
Спасибо
Я признаю, что я немного новичок, когда дело доходит до json, но для меня это не похоже на форматированный json. – Strawberry
закажите его кодом авиакомпании как второе поле в предложении ORDER BY. Затем в вашем цикле строк db продолжайте добавлять к сумме до тех пор, пока код авиакомпании текущей строки не будет отличаться от предыдущего. В этот момент напишите его в массив, а затем повторите процесс, пока не дойдете до следующей даты. – ADyson
@strawberry - да, это плохо отформатировано, но это был всего лишь пример того, чего я хотел. – Andrew