选择1行并将其显示在包含2列的表中

时间:2014-04-23 20:07:08

标签: php mysql

如何在数据库中创建select并在包含2列的表中显示该行。 这是我的选择

$query="select Interval from Interval_Orar";
$result=mysqli_query($dbc,$query) or die("query failed: " . mysqli_error($dbc));
echo '<table>';
while ($row=mysqli_fetch_array($result))
{
    echo'
        <tr>
        <td>'.$row['Interval'].'</td>
        </tr>';

}
echo '</table>';

我要展示的是这样的表

<tr>
<td>Interval 1</td>
<td>Interval 2</td>
</tr>

<tr>
<td>Interval 3</td>
<td>Interval 4</td>
</tr>

<tr>
<td>Interval 5</td>
<td>Interval 6</td>
</tr>

我不知道要做的是把那个2乘2选择在while

2 个答案:

答案 0 :(得分:2)

您可以在循环中执行另一个mysqli_fetch_array,检查是否有结果 并显示空单元格或带有内容的单元格。 然后在循环结束时,您只需要检查第二个mysqli_fetch_array是否有结果。 (空单元格是可选的,取决于您是否需要它,例如用于样式,添加not value或其他内容)

while ($row=mysqli_fetch_array($result))
{
  echo'<tr>';

  echo '<td>'.$row['Interval'].'</td>';

  $row=mysqli_fetch_array($result);
  if( $row ) {
    echo '<td>'.$row['Interval'].'</td>';
  } else {
    echo '<td></td>';
  }

  echo '</tr>';
  if( !$row ) {
    break;
  }

}

另一种方法是使用$counter$counter%2来检查结果应显示在哪一列以及是否需要添加<tr></tr> ,但这需要更多的工作。

修改 这个没有经过测试,因为我现在没有php而不是mysql设置服务器,但是从中创建一个函数可以让你重新使用任何列数:

function createRows( $result, $columns ) {
    if( $columns <= 0 ) {
      return;
    }
    $row = true; //initialize it with true so that the first mysqli_fetch_array will be called
    while($row !== null ) {
      echo'<tr>';

      for( $i=0 ; $i<columns ; $i++ ) {
        if( $row !== null && $row=mysqli_fetch_array($result) ) {
          echo '<td>'.$row['Interval'].'</td>';
        } else {
          echo '<td></td>';
        }
      }
      echo '</tr>';

    }
}

答案 1 :(得分:0)

将整个结果集转储到数组中,以便手动移动指针。 你的循环内部(用简单的英语)

column1 = row1 column2 = row1 + 1

row = row + 1

重复。