2015-01-09 2 views
1

как вы выбираете каждый день записи за последние 7 дней? если даты не доступны, установите значение 0. Я попробовал следующее, но я не получаю никаких результатов.mysql выбрать каждый день запись за последние 7 дней

$stmt = $db->prepare("SELECT DATE(order_date),COUNT(id) as 'total' FROM `orders` WHERE `order_date` BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()GROUP BY DATE(order_date)"); 
$stmt->execute(); 
$result = $stmt->get_result(); 

$total = []; 
while($row = $result->fetch_object()){ 
    $total[] = $row->total; 
} 
print_r($total); 
+2

Попробуйте удалить кавычки вокруг псевдонима. –

+0

@ Fred-ii- Да, он делает для 5.4 и выше – Rizier123

+0

@ Rizier123 Отредактировано. Это все твое ;-) –

ответ

1

не реальное решение, которое я хотел, но мне удалось получить результаты, обернув запрос в функции и назвав его в 7 раз ...

function weeklyData($day){ 
    $stmt = $db->prepare("SELECT order_date from orders where DATE(FROM_UNIXTIME(order_date)) = CURDATE() - INTERVAL ? DAY"); 
    $stmt->bind_param('s', $day); 
    $stmt->execute(); 
    $stmt->store_result(); 
    return $stmt->num_rows; 
} 
$total = []; 
for($x = 1; $x <= 7; $x++){ 
    $total[] = weeklyData($x); 
} 
print_r($total);