Мне нужно отобразить таблицу из 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++;
}?>
Как вы уже рассчитываете $row_count
переменная, вы можете добавить простой while
цикл, как это:
<?
while($row_count < 5){
?>
<tr>
<td > </td>
<td > </td>
<td > </td>
<td > </td>
</tr>
<?php $row_count++;
}?>
Также проверьте ответ @ paxdiablo о limit 5
вариант для вашего запроса.
Это должно сделать свое дело.
<?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
}
}
?>
Похоже, у вас есть две разные проблемы (хотя и связанные).
Если вам нужно только пять строк, даже если ваш запрос возвращает двадцать, вы можете использовать управляющую переменную $row_count
выводить только строки для первых пяти или (желательно) просто добавить limit 5
на ваш запрос, чтобы получить пять строк или меньше.
Вторая проблема заключается в том, что делать, если он возвращает менее пяти строк. В этом случае используйте переменную control для вывода пустых строк, например, добавив следующее в конец:
<?php
while ($row_count < 5) {
?>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<?php
$row_count++;
}
?>
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 }
}