Таблицы html, вывод данных из бд в таблицу php

508
26 ноября 2016, 20:16

Когда я пытался вывести данные из таблицы в бд, в таблицу на странице сайта, то столкнулся нос в нос с проблемой вывода т.к. табличку я создал не совсем стандартную

<table> <tr> <td>запись1</td> <td>запись2</td> <td>запись3</td> <td>запись4</td> <tr> </table>

Таблица моя состоит из нескольких строк(не суть сколько) и 4 колонок (вот с ними и проблема)

Задача состоит в том, что надо вывести все данные из таблицы БД в таблицу на странице поочередно(как бы списком, но в виде таблицы) (схематичный рисунок прикрепил)

Я пытаюсь вывести значения так:

    <table>
         <?php   
         require 'lib/connect.php';
            // SQL-запрос
            $strSQL = "SELECT * FROM news ORDER BY date DESC";
            // Выполнить запрос (набор данных $rs содержит результат)
            $rs = mysql_query($strSQL);
            // Цикл по recordset $rs
            // Каждый ряд становится массивом ($row) с помощью функции mysql_fetch_array
            while($row = mysql_fetch_array($rs)) {
               // Записать значение столбца FirstName (который является теперь массивом $row)
        echo"<tr>";
               echo "<tr>";
        echo"".$row['znachenie']."";
              echo"".$row['znachenie']."";
              echo"".$row['znachenie']."";
 echo"".$row['znachenie']."";
        echo"</td>";

              echo"</tr>";
            mysql_close();
        }    ?> </table>

Но тут получается так, что все первая строка таблицы равняется повторяющемуся одному значению, как же сделать так, чтобы значения были поочерёдные, например может надо приписать к echo"".$row['znachenie'].""; скобку [] с чем-то внутри?

Answer 1

Первый вариант:

<?php
    $arr = [1, 2, 3, 4, 5, 6, 7];
    echo "<tr>";
    $idx = 1;
    foreach($arr as $value) {
        printf("<td>%s</td>", $value);
        if ($idx%4 === 0) {
            echo "</tr><tr>";
        }
        $idx++;
    }
    echo "</tr>";

Второй вариант:

Использовать что то типа http://getbootstrap.com/css/#grid

<?php
    $arr = [1, 2, 3, 4, 5, 6, 7];
    echo "<div class='row'>";
    foreach($arr as $value) {
        // по 12
        //printf("<div class='col-md-1'>%s</div>", $value);
        // по 6
        //printf("<div class='col-md-2'>%s</div>", $value);
        // по 4
        printf("<div class='col-md-3'>%s</div>", $value);
        // по 3
        //printf("<div class='col-md-4'>%s</div>", $value);
        // по 2
        //printf("<div class='col-md-6'>%s</div>", $value);
    }
    echo "</div>";

ПС: Самое главное перестаньте мешать представление и логику. Посмотрите на шаблонизаторы.

READ ALSO
Как изменять нужные данные в базе данных?

Как изменять нужные данные в базе данных?

Всем привет! Прошу прощения за глупую формулировку вопроса! Не придумал лучшеТяжело описать вопрос поэтому я его нарисовал) Надеюсь поймете!...

231
Функция &ldquo;Экспорт&rdquo;

Функция “Экспорт”

Функция "Экспорт" оперирует с самой базой данных или создает копию?

249
Как найти записи в одной таблице, которым нет соответствия в другой

Как найти записи в одной таблице, которым нет соответствия в другой

Есть две большие таблицы в MySQLТеоретически между ними связь один-ко-многим

252
Работа с датами в PHP

Работа с датами в PHP

У меня такая проблема, необходимо сравнить дату с датой из MySQL datetime и текущей датойКак реализовать – не знаю

257