【问题标题】:how to create loop in loop...? PHP - MySQLi如何在循环中创建循环......? PHP - MySQLi
【发布时间】:2014-06-19 02:33:44
【问题描述】:

我有将数字存储到行中的数据表。现在我想和他们一起创建桌子。我想创建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>    

【问题讨论】:

标签: php mysql for-loop while-loop


【解决方案1】:

这是一个有趣的问题。如果你有一个二维数组,你是对的,你会先循环x,然后循环每个y,以获得x的给定值。但是,您的数据虽然描述了二维结构,但结果却是平坦的。我会遍历行,跟踪最后一个x 并创建新的&lt;tr&gt;..&lt;/tr&gt;,每次您注意到结果中的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;
  }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-09-16
  • 2016-08-30
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2016-08-27
  • 1970-01-01
  • 2018-01-14
相关资源
最近更新 更多