Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从MySQL表中获取PHP测试结果_Php_Mysql_Fetch - Fatal编程技术网

从MySQL表中获取PHP测试结果

从MySQL表中获取PHP测试结果,php,mysql,fetch,Php,Mysql,Fetch,我在PHP中创建了一个多答案测验,将答案发布到MySQL中的一个表中。没有正确的答案。有9个问题。问题是单选按钮,名称从a到i,多个答案的值为1到4。表格如下: 避免在公共交通工具上付费。 1.从来没有理由。 2.很少有正当理由。 3.有时是合理的。 4.始终对正。 如何获取这两种形式的结果: 在所有9个问题中选择了1或2或3或4个值 所有选定值的总和 这是表格: CREATE TABLE `tests`.`integrity` ( `id` INT(11) NOT NULL AUTO_IN

我在PHP中创建了一个多答案测验,将答案发布到MySQL中的一个表中。没有正确的答案。有9个问题。问题是单选按钮,名称从a到i,多个答案的值为1到4。表格如下:

避免在公共交通工具上付费。
1.从来没有理由。
2.很少有正当理由。
3.有时是合理的。
4.始终对正。

如何获取这两种形式的结果:

  • 在所有9个问题中选择了1或2或3或4个值
  • 所有选定值的总和
  • 这是表格:

    CREATE TABLE `tests`.`integrity` 
     ( `id` INT(11) NOT NULL AUTO_INCREMENT , 
       `name` VARCHAR(255) NOT NULL ,
       `q1` VARCHAR(255) NOT NULL ,
       `q2` VARCHAR(255) NOT NULL ,
       `q3` VARCHAR(255) NOT NULL ,
       `q4` VARCHAR(255) NOT NULL ,
       `q5` VARCHAR(255) NOT NULL ,
       `q6` VARCHAR(255) NOT NULL ,
       `q7` VARCHAR(255) NOT NULL ,
       `q8` VARCHAR(255) NOT NULL ,
       `q9` VARCHAR(255) NOT NULL ,
        PRIMARY KEY (`id`)) ENGINE = MyISAM;
    
       $sql = "INSERT INTO integrity (name, q1, q2, q3, q4, q5, q6, q7, q8, q9)   
               VALUES ('$value1', '$value2', '$value3', '$value4', '$value5',   
               '$value6', '$value7', '$value8', '$value9', '$value10')";
    
    结果的例子可能是:你得了9分 (如果为所有问题选择的值为1,则永远不会对其进行调整)

    最多15个: 你是一个非常诚实的人,真的想做正确的事情。 15至20 你的正直程度高于平均水平,但你不介意偶尔违反规则。 20至25 当规则适合你的时候,你会放松下来,但从根本上说,你并不是不诚实的。
    再加上你不相信按规则生活,当它适合你时,你会发现很容易打破规则。

    Yepes。这里有各种各样的数据完整性问题。在
    varchar(255)
    列中有数值。你已经排除了有十个或更多问题的测验。您使用的是MyISAM,它不提供事务完整性。你最好希望你的一个用户没有名字“johnny droptables”(查一查)

    但别在意这些。我们开发人员抱怨是因为我们的诚信。我们中的大多数人都应对过太多被黑客入侵的网站,以至于无法让它通过。让我们回答你的问题

    您可以通过这种方式检索每个人的总分。这将按升序显示它们

           SELECT name, q1+q2+q3+q4+q5+q6+q7+q8+q9 score
             FROM integrity
            ORDER BY q1+q2+q3+q4+q5+q6+q7+q8+q9 ASC, name
    
    您可以像这样创建一个直方图表格。这表明有多少人收到了每个不同的分数

    SELECT COUNT(*) number_of_people, scores.score
      FROM (
             SELECT name, q1+q2+q3+q4+q5+q6+q7+q8+q9 score
               FROM integrity
              ORDER BY q1+q2+q3+q4+q5+q6+q7+q8+q9
           ) scores
     GROUP BY scores.score
     ORDER BY COUNT(*) ASC, scores.score
    
    注意。这将自动忽略以字母开头的值


    我建议你开始工作,然后再次询问对每个分数进行分类的问题。

    …你有(具体)问题吗?如何以两种形式获取结果:1。在所有9个问题中选择了1或2或3或4个值。2.所选所有值的总和。请提供表格定义(最好是有效的
    CREATE table…
    语句)、一些示例数据(最好是有效的
    INSERT-in…
    语句)和示例结果(基于示例数据)。我认为答案正确。没有正确答案。