0

嘿,这是我的第一篇文章,所以我希望我能正确处理这个问题,但无论如何,我有一个调查,其中向用户提出了 8 个问题,他们应该通过单击值从 1 的单选按钮来评估他们对每个问题的感受(非常不同意)-5(非常同意)。所以我需要做的是记录每个单选按钮被选中的频率。像这样的东西:

$filename = "Results.txt";
$lines = file($filename); 
$q1 = $_POST['q1'];
$q2 = $_POST['q2'];
$q3 = $_POST['q3'];
$q4 = $_POST['q4'];
$q5 = $_POST['q5'];
$q6 = $_POST['q6'];
$q7 = $_POST['q7'];
$q8 = $_POST['q8'];

foreach($lines as $line) {  
        echo $line;
        if (isset($q1)){
            echo $line[$q1];
            echo $lines;
        }
    }

其中 q 代表问题#。最后,这需要保持一个正在运行的 calc,results.txt 应该看起来像这样:
0,0,5,0,0
0,0,0,0,0
0,0,0,0,0
0,0, 0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
第一行的 5 表示 5 个用户提交中性单选按钮选项(值 3)。每条线代表每个问题的总数。

请帮忙!

4

1 回答 1

0

像这样的东西应该回答你手头的“问题”,但是你应该移动这个应用程序来使用数据库。

$filename = "Results.txt";
$lines = file($filename);

$q1 = $_POST['q1']; //stored value between 1-5
$q2 = $_POST['q2'];
$q3 = $_POST['q3'];
$q4 = $_POST['q4'];
$q5 = $_POST['q5'];
$q6 = $_POST['q6'];
$q7 = $_POST['q7'];
$q8 = $_POST['q8'];

$qN = 1;  //question number
$newLines = '';
foreach($lines as $line) {

    echo $line;

    $line = trim($line);  //remove excess newlines etc.
    $lineArr = explode(',',$line);  //split line into array by commas
    $index = ${'q'.$qN}-1; //zero based
    if (isset($lineArr[$index])){
        $lineArr[$index]++;  //add to position by one vote.
    }
    $qN++;
    $newLines .= implode(',',$lineArr) . "\n";
}

//write contents back to file.
file_put_contents($filename, $newLines);
于 2012-12-12T08:12:01.803 回答