sql >> Databasteknik >  >> RDS >> Mysql

Hur man får sql WHERE uttalande automatisk uppdatering från localhost-länken

Använd detta uttalande för att få alla studentpoäng på ditt prov.

SELECT sq.stdid, sq.testid, COUNT(*) AS correctAnswers, 
SUM(q.marks) AS studentScore, (SELECT SUM(marks) FROM question 
WHERE testid=$_REQUEST['testid']) AS totalScore 
FROM question q, studentquestion sq 
WHERE sq.testid=$_REQUEST['testid'] AND q.testid = sq.testid 
AND q.qnid = sq.qnid AND sq.answered = 'answered' 
AND q.correctanswer = sq.stdanswer GROUP BY sq.stdid;

Du kan skapa en PHP-variabel för att beräkna procentandelen. Till exempel:

$scorePercentage = $r3['studentScore'] / $r3['totalScore'] * 100;

eller

$scorePercentage = $r3['studentScore'] .'/'. $r3['totalScore'];

// Output: echo $scorePercentage;
60
60/100

Använd denna SQL-sats för att få poängPercentage nu:
SELECT sq.stdid, sq.testid, COUNT(*) AS correctAnswers, 
(SUM(q.marks) / (SELECT SUM(marks) FROM question WHERE testid=1) * 100) 
AS studentScorePercentage FROM question q, studentquestion sq 
WHERE sq.testid=$_REQUEST['testid'] AND q.testid = sq.testid AND q.qnid = sq.qnid 
AND sq.answered = 'answered' AND q.correctanswer = sq.stdanswer 
GROUP BY sq.stdid;

SQLFiddle med ovanstående resultat här:http://sqlfiddle.com/#!9/8d47c/10



  1. Är mysql_real_escape_string() nödvändigt när du använder förberedda satser?

  2. Skenor:PG::UndefinedTable:FEL:relation ... existerar inte

  3. Justera dina Avg()-resultat i SQLite med nyckelordet DISTINCT

  4. Hur man importerar/återställer MySql-tabeller med PHP