我打电话给我的查询
$sql = "Call new_c02(1,1,'2014-01-10','2014-01-10')";
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
并生成一个表格:
Acc Data1 Data2 Data3
1 x y z
1 a b c
2 x y z
2 a b c
我可以使用
将它扔进一张桌子<table> <?php while($row = $result->fetch_assoc()){ ?>
<tr>
<td>
<?php echo $row['accounts'] . '<br />'; ?>
</td>
</tr>
</table>
等等
但是我希望能够为每个不同的帐户生成一个单独的表,因此我有一个Acc 1表和一个单独的表用于Acc2,依此类推,直到我在查询中用尽了Accs。 只是不确定如何遍历查询以为每个
创建一个单独的表帮助真的很感激 西蒙
答案 0 :(得分:1)
您需要跟踪已经输出的Acc编号,如果尚未输出当前的编号,请创建一个新表格。这样的事情可以解决问题:
<?php
$acc_output = array();
$is_first = true;
while($row = $result->fetch_assoc()) {
// set this according to your array structure
$acc_id = $row['accounts']['Acc'];
// if this is the first row, open a table
if($is_first)
echo '<table>';
// if it's not the first row, and it is a new acc ID
// close current table and open a new table
if(!$is_first && !in_array($acc_id))
echo '</table>' . PHP_EOL . '<table>';
// add current acc_id to the array
$acc_output[] = $acc_id;
// set not first
$is_first = false;
?>
<tr>
<td>
<?php echo $row['accounts'] . '<br />'; ?>
</td>
</tr>
<?php
}
// then, close the last table
?>
</table>
在测试用例中使用示例数据:
Acc Data1 Data2 Data3
1 x y z - is_first, open new table
1 a b c - not first, is in array - do nothing
2 x y z - not first, not in array - close/open new table
2 a b c - not first, is in array - do nothing
- end, close table