Как сделать данные в html таблицу при выводе в цикле?

user99

Постоялец
Регистрация
13 Янв 2008
Сообщения
141
Реакции
15
Добрый день!

Вывожу список номеров из БД
PHP:
while ($row = mysql_fetch_array($result)) {
echo "<a href=\"$row[number]\">$row[number]</a><br>";
}
В таком виде все выводится просто списком, а как например вывести в таблицу 5 столбцов и 10 строк?
Ведь цикл не сможет после 10 записей создавать столбец..

Спасибо.
 
Последнее редактирование модератором:
PHP:
$i=0;
echo '<table>';
echo '<tr>';
while ($row = mysql_fetch_array($result)) {
if($i==0 || $i==10) {
echo '<td>';
}
echo "<a href=\"$row[number]\">$row[number]</a><br>";
if($i==0 || $i==10) {
echo '</td>';
}
$i++;
if($i==10){
$i=0;
}

echo '</tr>';
echo '</table>';
Как-то так. Не тестировал но должно работать
 
Ругается на синтаксис.. но строку не говорит просто последнею указывает.
 
Закрывающую скобку для while поставьте

Но вообще строки и столбцы нужно выводить стилями.
Например в Foundation список ссылок в виде таблицы в 6 столцов делается так:

PHP:
<div class="row medium-up-6">
    <? while ($row = mysql_fetch_array($result)): ?>
        <div class="column column-block">
            <a href=\"<?= $row[number] ?>\"><?= $row[number] ?></a>
        </div>
    <? endwhile; ?>
</div>

Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
Не выводит таблицой данные..


<div class="row medium-up-6">
<? while ($row = mysql_fetch_array($result:(( ?>
<div class="column column-block">
<a href=\"<?= $row[number] ?>\"><?= $row[number] ?></a>
</div>
<? endwhile; ?>
</div>

Для просмотра ссылки Войди или Зарегистрируйся
На строку <a href=\"<?= $row[number] ?>\"><?= $row[number] ?></a>


Хочу номера вывести списком из базы как тут
Скрытое содержимое доступно для зарегистрированных пользователей!


+ после подключения Для просмотра ссылки Войди или Зарегистрируйся у меня в битриксе вообще весь дизаин поплыл...
 
Последнее редактирование:
Про номера - см. исходный пост автора

Про верстку -

Не удивительно
foundation это фреймворк со множеством классов, названия которых могут пересекаться с текущей версткой
Если ставить foundation целиком на готовую верстку, саму эту верстку естественно нужно менять под foundation

Поэтому если нет задачи сделать верстку на foundation, можно просто посмотреть, как работают классы grid и скопировать нужные.
Foundation или Bootstrap - мастхев, если делать верстку с нуля. Или если делать авторский дизайн на базе готового шаблона.
 
Я бы советовал даже в таких небольших кусках работать с шаблонами. Облегчает верстку, отделяет код от дизайна.

Т.е.
PHP:
$row_template = "<tr><td><a href='/someurl?{{number}}'>{{number}}</a></td></tr>";
$rows = "";

while ($row = mysql_fetch_array($result)) {
$row =  $row_template;
$row = str_replace('{{number}}', $row['number'], $row);
$rows .= $row;
}

if ($rows == "") {
$rows = '<tr><td>No data :(</td></tr>';
}

echo("<table>".$rows."</table>");

Как только понадобится делать таблицу красиво, это окупится.
Делать красиво удобно через UIKit: Для просмотра ссылки Войди или Зарегистрируйся
 
mSnus, Тут я так понял разнесения на столбца не будет при выводе..?
Ведь из базы мы получаем все списком.

Нужно создать таблицу 5 столбцов и в 10 строк, если данных больше то уже копки 1 2 3 итд внизу.

В этом вся сложность. Данные выглядят просто как номера телефонов в mysql таблице.
 
Последнее редактирование:
Нужно создать таблицу 5 столбцов и в 10 строк, если данных больше то уже копки 1 2 3 итд внизу.

В этом вся сложность. Данные выглядят просто как номера телефонов в mysql таблице.

Тогда нужно

1. Вывести таблицу в пять столбцов целиком
2. Одеть её в DataTables, в котором настроить постраничный пейджер, сортировку и т.д.

Таблица в 5 столбцов (код php - на вскидку, не тестировал )

PHP:
<?
$columns = 5;
$counter = $i = 0;
$row_count = mysql_num_rows($result);
$row = '';
?>

<table id="my-table">
    <tbody>
        <? while ($row = mysql_fetch_array($result)): ?>
            <?
            $i++;
            $counter++;

            // Первый столбец ряда
            if ($counter == 1) {
                ob_start();
            }
            ?>
        <td><a href=\"<?= $row[number] ?>\"><?= $row[number] ?></a></td>
        <?
            // Последний столбец ряда
            if ($counter == $columns || $i >= $row_count) {
                $row = ob_get_clean();
            ?><tr><?= $row ?></tr><?
                $counter = 0;
            }
           
            ?>
        <? endwhile; ?>
    </tbody>
</table>

<script>
  $(function(){
    $("#my-table").dataTable({
       "pageLength": 10
    });
  })
</script>


DataTables:
Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
Назад
Сверху