我需要帮助,我尝试了自己获取的行,但无法将其附加到while
循环中的数组:$rows[] = $row;
然后尝试构建$rows array
然后在foreach输出。
我该怎么做?
<?php
$query = $dbc->query('SELECT * FROM customer');
$rows = array();
while ($row = $query->fetch_assoc()) {
echo $row['clientid'].' '.$row['inital'].' '.$row['firstname'].' '.$row['lastname'].' '.$row['mobile'].' '.$row['landline'].' '.$row['email'].' '.$row['address'].' '.$row['postcode'];
}
foreach ($rows as $row) {
?>
<td><?php $row['clientid']; ?></td>
<td><?php $row['inital']; ?></td>
<td><?php $row['firstname']; ?></td>
<td><?php $row['lastname']; ?></td>
<td><?php $row['mobile']; ?></td>
<td><?php $row['landline']; ?></td>
<td><?php $row['email']; ?></td>
<td><?php $row['address']; ?></td>
<td><?php $row['postcode']; ?></td>
</td>
<?php } ?>
最终我这样做了,
<?php
$query = $dbc->query('SELECT * FROM customer');
if ( mysqli_num_rows( $query ) > 0 )
{
while ( $row = mysqli_fetch_array( $query, MYSQLI_ASSOC ))
{
echo "<tr><td>".$row['clientid']."</td><td>".$row['inital']."</td><td>".$row['firstname']."</td><td>".$row['lastname']."</td><td>".$row['mobile']."</td><td>".$row['landline']."</td><td>".$row['email']."</td><td>".$row['address']."</td><td>".$row['postcode']."</td></tr>";
}
echo '</tbody></table>' ;
}
else { echo '<div class="alert alert-error">
There are currently no records.
</div>' ; }
?>
答案 0 :(得分:1)
我不知道为什么你想要所有记录在$ rows&amp;使用foreach冗余两次仍然可以做,
$rows = array();
while ($row = $query->fetch_assoc()) {
$rows[] = $row;
}
答案 1 :(得分:1)
您的变量$ rows初始化为数组,但未被使用。
while ($row = $query->fetch_assoc()) {
$rows[] = $row;
}
这将创建一个包含所有$ row
的数组答案 2 :(得分:0)
请使用回车和标签。
另外,为什么要构建行数组? fetch_assoc为你做了
<?php while ($row = $query->fetch_assoc()) { ?>
<td><?php echo $row['clientid']; ?></td>
<td><?php echo $row['inital']; ?></td>
<td><?php echo $row['firstname']; ?></td>
<td><?php echo $row['lastname']; ?></td>
<td><?php echo $row['mobile']; ?></td>
<td><?php echo $row['landline']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['address']; ?></td>
<td><?php echo $row['postcode']; ?></td>
<td><?php echo $row['accessibility']; ?></td>
<?php } ?>
或者,如果您想分两步完成
$rows = $query->fetch_all();
...
<?php foreach ($rows as $row) { ?>
<td><?php echo $row['clientid']; ?></td>
<td><?php echo $row['inital']; ?></td>
<td><?php echo $row['firstname']; ?></td>
<td><?php echo $row['lastname']; ?></td>
<td><?php echo $row['mobile']; ?></td>
<td><?php echo $row['landline']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['address']; ?></td>
<td><?php echo $row['postcode']; ?></td>
<td><?php echo $row['accessibility']; ?></td>
<?php } ?>
答案 3 :(得分:0)
回答你的问题:
while ($row = $query->fetch_assoc()) {
$rows[] = $row;
echo $row['clientid'].' '.$row['inital'].' '.$row['firstname'].' '.$row['lastname'].' '.$row['mobile'].' '.$row['landline'].' '.$row['email'].' '.$row['address'].' '.$row['postcode'].' '.$row['accessibility'];
}
但是,您可以采取另一种方法。为什么不简单地使用while
循环来打印行?
while ($row = $query->fetch_assoc()) {
?>
<td><?php $row['clientid']; ?></td>
<td><?php $row['inital']; ?></td>
<td><?php $row['firstname']; ?></td>
<td><?php $row['lastname']; ?></td>
<td><?php $row['mobile']; ?></td>
<td><?php $row['landline']; ?></td>
<td><?php $row['email']; ?></td>
<td><?php $row['address']; ?></td>
<td><?php $row['postcode']; ?></td>
<td><?php $row['accessibility']; ?></td>
<?php } ?>
或者,如果您只需要数组中的行,则可以使用fetchAll()
,如下所示:
$rows = $query->fetchAll(PDO::FETCH_ASSOC);