Предел запроса игнорируется

У меня есть этот код и его вычисление всех строк в столбце 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

2

Решение

LIMIT ограничивает количество результатов, которые он возвращает

Ваш SUM всегда возвращает 1 результат, поэтому ваш лимит ничего не изменит.

Вам может понадобиться что-то вроде этого (не проверено, например)

SELECT sum(correct) FROM(
select correct from exams where username
= :username DESC LIMIT 5
)

Я снял заказ, возиться с ним по мере необходимости.

9

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]