如何创建一个数组,以便它显示来自MySQL的所有用户数据

时间:2017-12-14 19:27:48

标签: php mysql

我无法遍历得分记录。它不断替换新用户的分数,但不显示以前用户的记录。

这是代码。 users.php

public function show_per($matricnum)
{
    $query=$this->conn->query("select * from percentage where matricnum='$matricnum'");
    $row=$query->fetch_array(MYSQLI_ASSOC);
    if($query->num_rows>0)
    {
        $this->data[]=$row;
    }
    return $this->data;
}

viewre.php

<div class="container">
  <center><h2>Student Result Record</h2>   
  <?php 
     $i=1;
    foreach($result->data as $view)
    {?>  
  <table class="table table-striped">
    <thead>
      <tr>
        <th>ID</th>
        <th>Matric Number</th>
        <th>Result</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><?php echo $view['id']; ?></td>
        <td><?php echo $view['matricnum'];?></td>
        <td><?php echo $view['per'];?></td>
      </tr>
    </tbody>
    <?php $i++; }?>
  </table>
</div>

1 个答案:

答案 0 :(得分:2)

尝试:

public function show_per($matricnum)
{
    $query=$this->conn->query("select * from percentage where matricnum='$matricnum'");

    if($query->num_rows>0)
    {
        while ($row=$query->fetch_array(MYSQLI_ASSOC))
            $this->data[]=$row;
    }
    return $this->data;
}

您调用只返回一行的fetch_array()方法。你需要一个循环遍历所有行,然后当它占用所有行时它将返回NULL并且while循环将停止。

顺便说一下,您可以使用fetch_assoc()代替fetch_array(MYSQLI_ASSOC)