如何在数据库中创建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
答案 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
重复。