2015-01-10 2 views
0

можно ли заставить таблицу отображать, например. 10 строк - неважно, даже если строки пустые?Можно ли заставить таблицу отображать количество строк «x»?

мой код выглядит так:

<table> 
<tr> 
    <th>Title</th> 
    <th>Date Created</th> 
</tr> 
<?php 
    try { 
     $pages = new Paginator('10','p'); 

     $stmt = $db->query('SELECT postID FROM article_posts'); 

     $pages->set_total($stmt->rowCount()); 

     $stmt = $db->query('SELECT * FROM article_posts ORDER BY postID DESC '.$pages->get_limit()); 
     while($row = $stmt->fetch()){ 

      echo '<tr>'; 
       echo '<td>'. $row['postTitle'].'</td>'; 
       echo '<td>'.date('jS M Y', strtotime($row['postDate'])).'</td>'; 
       echo '</td>'; 
      echo '</tr>'; 

     } 

    } catch(PDOException $e) { 
     echo $e->getMessage(); 
    } 
?> 
</table> 
<?php echo $pages->page_links(); ?> 

я есть вывод записей и нумерацию страниц в строках 10, однако, если существует такое число, как 26 записей, то я получаю всего шесть строк на одной странице ,

его больше из-за недостатка дизайна, потому что вы хотите сделать это при изменении страницы (все движется вверх), и я хочу, чтобы все оставалось в форме. я думаю, я мог бы помещать таблицу внутри фиксированного div, чтобы предотвратить это, но хотел бы знать, возможен ли этот способ, и я думаю, что это «плохой» способ сделать это при выборе метода div. я думаю в будущем, позволяя пользователю увеличивать/уменьшать количество результатов, показанных, например, 10, 20, 50 ... заставили бы таблицу отображать определенное количество строк, если бы это было «плохой» идеей?

+1

* заставил бы таблицу отображать заданное количество строк в качестве «плохой» идеи при приближении к ней? * В качестве пользователя я бы счел это нечетным –

+1

Подсчитайте, сколько строк у вас после того, как вы вставили значения из db, вычесть их из 10, а затем использовать цикл for для заполнения заполнителей. –

ответ

1

Чтобы расширить комментарий Шарлотты, это способ сделать это:

$i = 0; 
while($row = $stmt->fetch()){ 
    echo '<tr>'; 
    echo '<td>'. $row['postTitle'].'</td>'; 
    echo '<td>'.date('jS M Y', strtotime($row['postDate'])).'</td>'; 
    echo '</td>'; 
    echo '</tr>'; 
    $i++; 
} 
while ($i < 10){ 
    echo '<tr><td></td><td></td></tr>'; 
    $i++; 
} 
1

Есть две проблемы. Во-первых, если ячейки таблицы полностью пусты, их высота по умолчанию равна нулю. Вы можете исправить это, установив на них height; для ячеек он действует как минимальная высота. Для краткости я буду использовать всего 4 строки.

body { 
 
    line-height: 1.3; /* set to a specific value */ 
 
} 
 
.x td { 
 
    height: 1.3em; /* one line, since line height is 1.3 */ 
 
}
<table border> 
 
    <tr><td>foo</td> 
 
    <tr><td>bar</td> 
 
    <tr><td></td> 
 
    <tr><td></td> 
 
</table> 
 

 
Same with min height set: 
 

 
<table border class=x> 
 
    <tr><td>foo</td> 
 
    <tr><td>bar</td> 
 
    <tr><td></td> 
 
    <tr><td></td> 
 
</table>

Другой проблемой является количество tr элементов в таблицах. Это лучше всего обрабатывать в процессе генерации, просто отслеживая количество строк и при необходимости испуская пустые строки. Затем вы можете подумать о включении пробелов без пробелов в качестве содержимого, например. ` , поскольку он заставляет ячейки иметь высоту одной строки, и вам не понадобится код CSS.

+0

Не думал о высоте, хорошо поймал :) – Emil

Смежные вопросы