Заставить таблицу отображать 5 строк с данными или без данных

Мне нужно отобразить таблицу из 5 строк, извлекаемых из базы данных MySQL с использованием PHP. Из приведенного ниже кода, если у меня есть 3 строки в базе данных, он будет отображать только 3 строки. Но мне нужно отобразить 5 строк с 2 пустыми строками и 3 выбранными строками. Если в базе данных не найдено записей, я должен отобразить 5 пустых строк. Мне нужна твоя помощь в этом.

Замечания: Я создаю отчет, используя PHP и MySQL. С помощью описанного выше метода я могу зафиксировать высоту таблицы, поэтому отчет будет генерироваться без каких-либо перекрытий.

КОД:

<?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++;
}?>

2

Решение

Как вы уже рассчитываете $row_count переменная, вы можете добавить простой while цикл, как это:

<?
while($row_count < 5){
?>
<tr>

<td >&nbsp;</td>
<td >&nbsp;</td>
<td >&nbsp;</td>
<td >&nbsp;</td>

</tr>
<?php $row_count++;
}?>

Что такое &nbsp;? Это нужно?

Также проверьте ответ @ paxdiablo о limit 5 вариант для вашего запроса.

2

Другие решения

Это должно сделать свое дело.

<?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>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<?php
}
}
?>
1

Похоже, у вас есть две разные проблемы (хотя и связанные).

Если вам нужно только пять строк, даже если ваш запрос возвращает двадцать, вы можете использовать управляющую переменную $row_count выводить только строки для первых пяти или (желательно) просто добавить limit 5 на ваш запрос, чтобы получить пять строк или меньше.

Вторая проблема заключается в том, что делать, если он возвращает менее пяти строк. В этом случае используйте переменную control для вывода пустых строк, например, добавив следующее в конец:

<?php
while ($row_count < 5) {
?>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<?php
$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 }
if($select3<5){
for($i=1;$i<5-$select3;$i++){?>
<tr>
<td ></td>
<td ></td>
<td ></td>
<td ></td>
</tr>
<?php  }
}
1
По вопросам рекламы [email protected]