无法从MYSQL数据库回显数据

时间:2019-03-02 06:03:13

标签: php mysql

enter image description here

你好!表中的数据就是这样,我无法单独回显这些条目。我想在HTML表格中显示此数据,例如,主题:数学,正确:34,错误:6。

我是php的新手,在这种情况下请帮助我。

3 个答案:

答案 0 :(得分:1)

表中的数据似乎是JSON格式。您可以使用json_decode()将其转换为PHP对象,然后使用print_r()打印该对象。

放在一起,您会得到

echo print_r(json_decode($data), true);

请注意,我必须将此响应编辑回现在的状态,因为@ fenil-shah已将其更改为其他不合适的内容。请发送自己的回复,而不要让其他人说出他们不想要的内容。

@ fenil-shah,我的回答是故意写的。这里是解释:

  1. 通常,如果要控制pr​​int_r()函数的结果,则需要以字符串形式返回其结果。这就是为什么我将true作为print_r()函数的第二个参数传递的原因。如果不将print_r()作为字符串返回到另一个脚本的中间,就不会使用print_r(),因为它会以不受控制的方式输出一些文本,从而破坏加法。有了返回字符串后,您可以将其发送到日志文件或使用它进行任何操作。
  2. json_decode可以很好地工作,而无需将true作为第二个参数传递。 OP的示例显示了一个对象。您的编辑是有意将解码的对象更改为具有关联数组的数组。为什么?
  3. 您已将逗号后从print_r()移到json_decode()的空格删除,以使其看起来像json_decode($data,true)。您需要知道存在该空间的原因有两个:可读性和与PSR-2标准的兼容性(请在https://www.php-fig.org/psr/psr-2/#46-method-and-function-calls上了解有关该PHP编码标准的更多信息)。

答案 1 :(得分:0)

php中有echo ""print_r()print()函数可用于打印数据。如果查询返回数组,则使用print_r()函数,但如果查询未返回任何内容或php中的无效提取方法,则这些功能均无法显示数据。

答案 2 :(得分:0)

我认为这就是您想要的输出。   您可以使用json_decode()函数解码从数据库接收的JSON,并将结果转换为关联数组。 稍后在foreach()循环中传递数组将相应地完成您的工作

 <?php
    $result = '{
      "30": {
      "subject_id":343,
      "correct_answers":34,
      "wrong _answers":61,
      "not_answered":0,
      "time_spent":3801,
      "time_to_spend":3680,
      "time_spent_correct_ answers":3286,
      "time_spent_wrong_answers":515 
      },
      "52": {
        "subject_id":52,
        "correct_answers":7,
        "wrong_answers":3,
        "not_answered":0,
        "time_spent":883 ,
        "time_to_spend":94343,
        "time_spent_correct_ans wers":352,
        "time_spent wrong_answers":441
      },
      "53": {
        "subject_id":53,
        "correct_answers":3,
        "wrong_answers":7,
        "not_answered":43,
        "time_spent":584 ,
        "time_to_spend":900,
        "time_spent_correct_ans wers":154,
        "time_spent wrong_answers":430
      }
    }';
    $json_decoded_data = json_decode($result,true);
    ?>
    <table>
        <tbody>
            <tr>
                <th>subject_id</th>
                <th>correct_answers</th>
                <th>wrong_answers</th>
            </tr>
            <?php
            foreach($json_decoded_data as $row){
                echo "<tr>";
                echo "<td>".$row['subject_id']."</td>";
                echo "<td>".$row['correct_answers']."</td>";
                echo "<td>".$row['correct_answers']."</td>";
                echo "</tr>";
            }
            ?>
        </tbody>
</table>