динамическая таблица основывается на поле базы данных - PullRequest
0 голосов
/ 26 ноября 2018

Помогите, у меня есть стек, когда я хочу создать динамическую таблицу,

, поэтому идея программы в том, что мы можем выбрать подходящее поле базы данных и показать его.так что если у нас есть это поле в таблице в базе данных:

  1. Нет
  2. Имя
  3. Возраст
  4. Адрес

    и мы просто хотим показать имя и адрес, поэтому я сохраняю правило в базе данных (SELECT Name, Address)

    но проблема в динамической таблице, когда я показываю, как создать динамическую таблицу, когда полевсегда меняйте (Пример: может быть, поле просто Возраст, или Имя и возраст, или мы показываем все #it только из Настроить, что я делаю)

Я пытался превратить результат запроса в массиви покажите это так.

<table>
    <?php for($x=0;$x<$length_array;$x++){ ?>
        <tr>
            <?php for($y=0;$y<$width_array;$y++){ ?>
                <td><?php $result[$length_array][$width_array] ?></td>
            <?php } ?>  
        </tr>
    <?php } ?>
</table>

примечание: переменная $ result является результатом запроса результата, и я изменяю его в массив, но проблема в том, что я не могу посчитать длину и ширину из массива в этом коде.

1 Ответ

0 голосов
/ 27 ноября 2018

Это немного зависит от того, как возвращается ваш набор результатов, но на основании приведенного выше кода я буду считать, что ваш результат представляет собой массив массивов.

Сначала подумайте, что вы хотите: вы хотите HTMLтаблица с заголовком, который дает имя для каждого столбца, а затем содержит строку для каждой записи в вашем наборе результатов.

Мне очень не нравится смешивать php и html, поэтому я буду использовать другой стиль синтаксиса, ношаги одинаковы, независимо от того, какой стиль вы используете.Этот способ облегчает чтение логики.

Сначала создайте таблицу.

<?php
$html = '<table>';

Теперь вы хотите добавить заголовок таблицы и создать ячейку для каждого столбца втвой результат.Прежде чем сделать это, вы должны ответить: где вы собираетесь взять имена для ваших столбцов?Есть два возможных ответа;1) непосредственно из результатов вашего запроса или 2) жестко закодировать их.

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

$columnNames = ['Name', 'Address'];

---- ИЛИ ----

$firstRow = $result[0]; // of course we have checked that the result set is not empty!
$columnNames = array_keys($firstRow); // adjust if rows are objects instead of arrays

Теперь выведите заголовок:

$html .= '<thead>';
foreach($columnNames as $columnName) {
    $html .= '<th>' . $columnName . '</th>';
}
$html .= '</thead>';

Теперь мы можем перейти кbody, как и в ответе на предыдущий вопрос, создайте строку в таблице для каждого элемента в вашем наборе результатов.Для каждой строки у вас есть внутренний цикл, который создает разметку для каждой ячейки.

$html .= '<tbody>';

foreach($result as $row) {
    $html .= '<tr>';
    foreach($row as $cell) {
        $html .= '<td>' . $cell . '</td>';
    }
    $html .= '</tr>';
}

$html .= '</tbody>';
$html .= '</table>';

print $html;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...