2016-06-22 2 views
0

У меня есть таблица сниппетов.Выберите сумму сверху 3 последних 7 дней

rating table

Выше рейтинговой таблицы я коплю записи о vote из product_iduser_id с рейтингом, которые к этому product_id с голосованием и rating_date.

Теперь я должен получить топ-3 product_id, у которых максимальная сумма голосов за последние 7 дней (с текущей даты).

вне положенного ожидается максимальная сумма голосов записи product_id: -

1) product_id 8965 имеет 403 макс vote суммы последних 7 дней

2) product_id 4024 имеют 36 макс vote от суммы последнего 7 дней

3) product_id 2015 имеет 5 макс vote суммы последних 7 дней

Это все топ 3 максимальная сумма голосов за 7 да ys, поэтому я получаю produt_id в соответствии с этим выходом.

Я попытался описать код фрагмента, но его неправильно.

<?php 
$query = mysql_query("SELECT SUM(vote) AS 'meta_sum', product_id 
FROM rating 
where rating_date >= curdate() - INTERVAL '7' DAY 
    AND rating_date < curdate() - INTERVAL '1' DAY 
GROUP BY product_id 
ORDER BY meta_sum DESC LIMIT 3") OR DIE(mysql_error()); 
while($row = mysql_fetch_assoc($query)) 
{ 
    $topexpert =$row["product_id"]; 
    $toprating =$row["meta_sum"]; 
    ?> 
+0

Define неправильно, вы получаете сообщение об ошибке? – sagi

+0

В вашем цикле while отсутствует закрывающая '}'. –

ответ

1

Пожалуйста, замените этот запрос

SELECT SUM(vote) AS 'meta_sum', product_id 
FROM rating 
where rating_date BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW() 
GROUP BY product_id 
ORDER BY meta_sum DESC LIMIT 3 
Смежные вопросы