我无法遍历得分记录。它不断替换新用户的分数,但不显示以前用户的记录。
这是代码。 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>
答案 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)
。