2016-01-31 3 views
0

У меня есть запрос, который возвращает правильные результаты из базы данных, я хочу заполнить таблицу HTML результатами. Тем не менее, я получаю только данные «raw», таблица не отображается, как это должно быть в соответствии с классом CSS.Заполнить HTML-таблицу с извлеченными данными SQL - реализовать класс таблицы

Мой вопрос: Являются ли теги класса таблицы размещенными в правильной точке? Я думаю, что здесь есть ошибка.

<table class="table-class"> 
    <thead> 
    <tr><th>Car</th><th>Year</th><th>HP</th><th>Seats</th></tr> 
    </thead> 
<tbody> 
<?php 
    while($row = $resultsql->fetch_assoc()){ 
?> 

<tr> 
    <td> 
    <?php echo $row['Car']; ?> 
    </td> 
    <td> 
    <?php echo $row['Year']; ?> 
    </td> 
    <td> 
    <?php echo $row['HP']; ?> 
    </td> 
    <td> 
    <?php echo $row['Seats']; ?> 
    </td> 
</tr> 
    <?php 
    } 
    ?> 

    </tbody> 
</table> 

Мой CSS:

.table-class { 
    margin: 1em 0; 
    width: 100%; 
} 
@media (min-width: 480px) { 
    .table-class { 
    width: auto; 
    } 
} 
.table-class tr { 
    border-top: 1px solid #ddd; 
    border-bottom: 1px solid #ddd; 
} 
.table-class tr td { 
    text-align: left; 
} 
@media (min-width: 480px) { 
    .table-class tr td { 
    text-align: center; 
    } 
} 
.table-class tr td:first-of-type { 
    text-align: left; 
} 
.table-class th { 
    display: none; 
} 
.table-class td { 
    display: block; 
} 
.table-class td:first-child { 
    padding-top: .5em; 
} 
.table-class td:last-child { 
    padding-bottom: .5em; 
} 
.table-class td:before { 
    content: attr(data-th) ": "; 
    font-weight: bold; 
    width: 9em; 
    display: inline-block; 
} 
@media (min-width: 480px) { 
    .table-class td:before { 
    display: none; 
    } 
} 
.table-class th:first-of-type { 
    text-align: left; 
} 
.table-class th, .table-class td { 
    text-align: center; 
} 
@media (min-width: 480px) { 
    .table-class th, .table-class td { 
    display: table-cell; 
    padding: .25em .5em; 
    } 
    .table-class th:first-child, .table-class td:first-child { 
    padding-left: 0; 
    } 
    .table-class th:last-child, .table-class td:last-child { 
    padding-right: 0; 
    } 
} 
+1

Не могли бы вы добавить код CSS в свой вопрос? Должно быть включено все, что содержит '.table-class'. –

+0

Я не знаком с PHP, но разве вы не пропускаете ' ...' теги? '

' is right, btw. – PerlDuck

+0

Ухх, я думаю, я понял: цикл while не имеет закрывающего '}'. – PerlDuck

ответ

2

Есть два вопроса о коде:

(1) Каждый <td> должны иметь свои соответствующие <th> значения в качестве атрибута data-th и это отсутствует.

<?php 
    echo '<tr>'; 
    echo '<td data-th="Car">' . $row['Car'] . '</td>'; 
    echo '<td data-th="Year">' . $row['Year'] . '</td>'; 
    echo '<td data-th="HP">' . $row['HP'] . '</td>'; 
    echo '<td data-th="Seats">' . $row['Seats'] . '</td>'; 
    echo '</tr>'; 
?> 

(2) Пограничные свойства должны быть добавлены к <td> тегам, а не <tr> тегов. Строки таблицы не поддерживают это свойство. Проверьте это fiddle.

Ну, я сделал несколько изменений в коде CSS (в основном, все медиа-запросы вместе), но он демонстрирует, как вы можете добавлять границы в свою таблицу и использовать данные <th> в ответном виде.

+0

Этот ответ будет работать. –

+0

Это работает с точки зрения того, что я вижу работу CSS, спасибо вам большое. Однако это не похоже на пример codepen. Я что-то недопонимаю, не могу ли я пропустить какой-то код, чтобы он выглядел? – ffritz

+0

Я даже не заметил ручку (до сих пор). Мне показалось, что вам нужна поддержка использования атрибута data и создания границы таблицы, и именно об этом я пытался помочь. Я думаю, что вы можете сделать все остальное легко, добавив некоторый фон, радиус границы, цвета, шрифты и т. Д. Кусок торта ... Правильно? Дайте мне знать, если вы застрянете, и я попробую вас. –