2

私はこのコードを持っており、その列のすべての行を計算しcorrectLIMIT 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

4

1 に答える 1

9

LIMIT返される結果の量を制限する

常に 1 つの結果を返すため、制限は何もしませSUMん。

このようなものが必要になる場合があります(たとえば、テストされていません)

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

注文を削除し、必要に応じていじりました。

于 2014-09-25T13:39:48.857 に答える