我有将数字存储到行中的数据表。现在我想和他们一起创建桌子。我想要列出X
行和Y
列。我知道我应该使用while foreach
循环,但我不知道如何...... :(
$result = $db->query(
"SELECT `x`,`y`,`noe` FROM `table` "
. "WHERE (`x` >= 0 and `x` < 4) and (`y` >= 0 and `y` < 4) "
. "ORDER BY `x`,`y` ASC") or die($db->error);
if($result) {
echo "<pre>",$result->num_rows,"</pre>";
echo "<pre>", print_r($row = $result->fetch_object()),"</pre>";
?>
<table>
<?php
while($row = $result->fetch_all()){
//echo "X: ", $row->x, " ,Y: ", $row->y," ,Type of item: ", $row->noe,"<br>";
echo '<tr><td>',$row->x,'-',$row->y,'</td></tr>';
}
}
?>
</table>
答案 0 :(得分:1)
这是一个有趣的问题。如果你有一个二维数组,那么你就可以首先遍历x
,然后遍历每个y
以获得x
的给定值。然而,尽管您的数据描述的是二维结构,但它的结果却很平坦。每次您注意到结果中的x
与上次迭代中的<tr>..</tr>
不同时,我会遍历行,跟踪最后x
并创建新的$lastx = -1; // or some value you know you'll never use
while ($row = $result->fetch_all()) {
$x = $row['x'];
if ($x != $lastx) {
echo '<tr>';
}
echo '<td>...</td>'
if ($x != $lastx) {
echo '</tr>';
$lastx = $x;
}
}
(即行已更改)。
像
这样的东西{{1}}