substr — Создание системы подсчета очков Переполнение стека

Я нахожусь в процессе создания системы оценки для приложения на основе вопросника, и в настоящее время я пытаюсь сделать следующее:

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);

?>

0

Решение

Хорошо, если ваш вопрос заключается в том, как пройти через все разные ответы, то

while ($dbQuery->fetchInto($row))

Чтобы выбрать данные, $ row [0] = первый столбец $ row [1] второй столбец и т. Д.

Чтобы не нарушать ваш код, вы можете начать использовать разные переменные для всего, теперь это все dbQuery, и это довольно плохо. Как только внутренняя часть while будет выполнена, while прервется, поэтому переименуйте переменные из второго запроса, если вы хотите запустить его для каждой строки первого запроса.

0

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

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

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