我必须使用PHP显示从MySQL数据库中获取的5行的表。从下面的代码中,如果我在数据库中有3行,它将只显示3行。但是,我需要显示5行,其中包含2个空行和3个读取的行。如果在数据库中找不到记录,我应该显示5个空行。我需要你的帮助。
注意:我正在使用PHP和MySQL生成报告。从上面的方法,我可以修复表高度,因此报告将生成没有任何重叠。
CODE:
<?php
$select= "select * from table where id=1";
$select2= mysql_query($select);
$select3= mysql_num_rows($select2);
$row_count = 1;
while($row = mysql_fetch_assoc($select2)){
?>
<tr>
<td ><?php echo $row_count;?>.</td>
<td ><?php echo $rows['id']; ?></td>
<td ><?php echo $rows['name']; ?></td>
<td ><?php echo $rows['phone_number']; ?></td>
</tr>
<?php $row_count++;
}?>
答案 0 :(得分:2)
由于您已经在计算$row_count
变量,因此可以添加简单的while
循环,如下所示:
<?
while($row_count < 5){
?>
<tr>
<td > </td>
<td > </td>
<td > </td>
<td > </td>
</tr>
<?php $row_count++;
}?>
另请查看@ paxdiablo关于查询的limit 5
选项的回答。
答案 1 :(得分:1)
这应该可以解决问题。
<?php
$select= "select * from table where id=1";
$select2= mysql_query($select);
$select3= mysql_num_rows($select2);
$row_count = 1;
while($row = mysql_fetch_assoc($select2)){
?>
<tr>
<td ><?php echo $row_count;?>.</td>
<td ><?php echo $rows['id']; ?></td>
<td ><?php echo $rows['name']; ?></td>
<td ><?php echo $rows['phone_number']; ?></td>
</tr>
<?php $row_count++;
}
if ($row_count < 5){
for ($i=1; $i <= (5-$row_count); $i++){
?>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<?php
}
}
?>
答案 2 :(得分:1)
您似乎有两个不同的问题(虽然相关)。
如果您只需要五行,即使查询返回二十,您也可以使用控制变量$row_count
仅输出前五行,或者(最好)只添加limit 5
您的查询要获得五行或更少的行。
第二个问题是如果返回少于五行该怎么办。在这种情况下,使用控制变量输出空行,例如在末尾添加以下内容:
<?php
while ($row_count < 5) {
?>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<?php
$row_count++;
}
?>
答案 3 :(得分:1)
while($row = mysql_fetch_assoc($select2)){
?>
<tr>
<td ><?php echo $row_count;?>.</td>
<td ><?php echo $rows['id']; ?></td>
<td ><?php echo $rows['name']; ?></td>
<td ><?php echo $rows['phone_number']; ?></td>
</tr> <?php }
if($select3<5){
for($i=1;$i<5-$select3;$i++){?>
<tr>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
</tr>
<?php }
}