Php 创建评分系统 我正在创建一个基于问卷的应用程序的评分系统,我目前正在尝试做如下: select all questions from the table

Php 创建评分系统 我正在创建一个基于问卷的应用程序的评分系统,我目前正在尝试做如下: select all questions from the table,php,substr,scoring,Php,Substr,Scoring,边回答下一个问题{ 从答案字符串中删除第一个字符并用作分数 从刚才阅读的问题中获取factorCode和invertCode add the score to each factor affected } 到目前为止,我有以下情况,但我不能理解while条件将是什么 <?php $dbQuery = $db->prepare("select text from questions"); $dbQuery->execute(); while() { //declare

边回答下一个问题{ 从答案字符串中删除第一个字符并用作分数 从刚才阅读的问题中获取factorCode和invertCode

add the score to each factor affected
}

到目前为止,我有以下情况,但我不能理解while条件将是什么

<?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将中断,因此如果要为第一个查询的每一行运行它,请重命名第二个查询中的变量。

我不确定,但while条件可能应该通过顶部select语句的结果进行迭代。另外,代码中$str的值来自哪里?在我的代码中,这个php上面有一个$answers变量,它是一个数字字符串,但我只希望每次删除字符串中的第一个数字并将其存储为分数。您可能希望编辑您的问题,以包括该部分。