«Хорошая» HTML-таблица с использованием результатов SQL

0

В настоящее время я использую эту таблицу html, используя SQL-результаты для ее заполнения:

<table> 
<table border="1">
    <tr> 

        <th>Username</th> 
        <th>holid</th> 
        <th>Start date</th> 
        <th>end date</th> 
        <th>Work days off</th> 


    </tr> 
    <?php foreach($rows as $row): ?> 
    <table border="1">
        <tr> 
            <td><?php echo htmlentities($row['username'], ENT_QUOTES, 'UTF-8');?></td> 
            <td><?php echo htmlentities($row['starthol'], ENT_QUOTES, 'UTF-8'); ?></td> 
            <td><?php echo htmlentities($row['endhol'], ENT_QUOTES, 'UTF-8'); ?></td> 
            <td><?php echo htmlentities($row['days'], ENT_QUOTES, 'UTF-8'); ?></td> 
            <td><a href="#">Approve</a></td> 
            <td><a href="#">Reject</a></td> 

        </tr> 
    <?php endforeach; ?> 
</table> 

Это прекрасно работает и все, но стол очень грязный, а заголовки не соответствуют действительности. Есть ли простой способ сделать это чище (php beginner).

  • 0
    Вопрос посылает сигнал, что вы тоже начинающий HTML. Я бы начал с чтения некоторых уроков по этому поводу. Для этого вам не следует создавать отдельную таблицу для каждой строки, считываемой из БД, только <tr> и что внутри них ...
  • 0
    Вы создаете много <table>, вы должны проверить, какой HTML-код отображается после этого.
Теги:
html-table

2 ответа

1
Лучший ответ

Вот лишний тег таблицы удалил кодировку и см. Ниже для кодировки css.

<table border="1">
<tr> 

    <th>Username</th> 
    <th>holid</th> 
    <th>Start date</th> 
    <th>end date</th> 
    <th>Work days off</th> 


</tr> 
<?php foreach($rows as $row): ?> 

    <tr> 
        <td><?php echo htmlentities($row['username'], ENT_QUOTES, 'UTF-8');?></td> 
        <td><?php echo htmlentities($row['starthol'], ENT_QUOTES, 'UTF-8'); ?></td> 
        <td><?php echo htmlentities($row['endhol'], ENT_QUOTES, 'UTF-8'); ?></td> 
        <td><?php echo htmlentities($row['days'], ENT_QUOTES, 'UTF-8'); ?></td> 
        <td><a href="#">Approve</a></td> 
        <td><a href="#">Reject</a></td> 

    </tr> 
<?php endforeach; ?> 
</table> 


/*css styles*/

table { 

    border-collapse: collapse; 
}
/* Zebra striping */
tr:nth-of-type(odd) { 
    background: #eee; 
}
th { 
    background: #333; 
    color: white; 
    font-weight: bold; 
}
td, th { 
    padding: 6px; 
    border: 1px solid #ccc; 
    text-align: left; 
}
  • 0
    спасибо, теперь я понимаю. Это была петля, которая бросала меня :)
1

Удалите вторую <table border="1">, которая находится ниже инструкции foreach.

EDIT: И один из первых. Каждый <table> должен иметь одну соответствующую </table> (которая относится ко всем тегам в HTML !)

Также попробуйте сопоставить <th> с <td> s. Прямо сейчас 5 <th> и каждая строка имеет 6 <td> s.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню