У меня есть этот код и его вычисление всех строк в столбце correct
и игонринг LIMIT 5
Строка кода, которая игнорируется
$last5rate = $db->prepare("select sum(correct)
from exams where username = :username ORDER BY testID DESC LIMIT 5");
вот весь код
<?php
require('includes/config.php');
//if not logged in redirect to login page
if(!$user->is_logged_in()){ header('Location: login.php'); }
$username = $_SESSION['username'];
$last5rate = $db->prepare("select sum(correct) from exams where username = :username ORDER BY testID DESC LIMIT 5");
$last5rate->execute(array(':username' => $username));
for($i=0; $rows = $last5rate->fetch(); $i++){
//Edit this row
$last5 = $rows['sum(correct)'];
$last5final = $last5 / 10;
}
echo $last5final;
?>
Я попробовал следующие методы
select sum(correct) from exams where username
= :username ORDER BY testID DESC LIMIT 0,5
А ТАКЖЕ
select sum(correct) from exams where username
= :username ORDER BY testID DESC LIMIT 5
LIMIT
ограничивает количество результатов, которые он возвращает
Ваш SUM
всегда возвращает 1 результат, поэтому ваш лимит ничего не изменит.
Вам может понадобиться что-то вроде этого (не проверено, например)
SELECT sum(correct) FROM(
select correct from exams where username
= :username DESC LIMIT 5
)
Я снял заказ, возиться с ним по мере необходимости.
Других решений пока нет …