Я нахожусь в процессе создания системы оценки для приложения на основе вопросника, и в настоящее время я пытаюсь сделать следующее:
select all questions from the table
while (получить следующий вопрос) {
удалить первый символ из строки ответа и использовать в качестве оценки
получить factorCode и invertCode из вопроса только что прочитал
add the score to each factor affected
}
Пока что у меня есть следующее, но я не могу понять, какое будет состояние
<?php
$dbQuery = $db->prepare("select text from questions");
$dbQuery->execute();
while()
{
//declare factor scores & maxFactors array 15 elements fill with 0's
$maxFactors=array("0","0","0","0","0","0","0","0","0","0","0","0","0","0","0");
$factorScores=array("0","0","0","0","0","0","0","0","0","0","0","0","0","0","0");//-----
// get $response from answers use substring
$response= substr($str, 1);
// get $factorCode from database
$dbQuery = $db->prepare("select FactorCode from questions");
$dbQuery->execute();
while ($dbRow = $dbQuery->fetch(PDO::FETCH_ASSOC)) {
$FactorCode = $dbRow['FactorCode'];
for ($thisFactor=15; $thisFactor>=6; $thisFactor--)
{ $value=2^($thisFactor-1)
if $thisFactor>=$value{
invert $factorScores[$thisFactor]+=$response;
//invert $factorScores[$thisFactor]+=(6-$response);
$maxFactors[$thisFactor]+=5;
$factorCode-=$value;
}
}
}
//-------
//print 2 arrays
print_r($maxFactors);
print_r ($factorScores);
?>
Хорошо, если ваш вопрос заключается в том, как пройти через все разные ответы, то
while ($dbQuery->fetchInto($row))
Чтобы выбрать данные, $ row [0] = первый столбец $ row [1] второй столбец и т. Д.
Чтобы не нарушать ваш код, вы можете начать использовать разные переменные для всего, теперь это все dbQuery, и это довольно плохо. Как только внутренняя часть while будет выполнена, while прервется, поэтому переименуйте переменные из второго запроса, если вы хотите запустить его для каждой строки первого запроса.
Других решений пока нет …