Вопрос

Привет,

У меня есть данные, хранящиеся в MySQL с разделителем «,» в 1 таблице.У меня также есть строки и столбцы, хранящиеся в базе данных.Теперь мне нужно вывести данные, используя номера строк и столбцов, хранящиеся в базе данных, чтобы нарисовать таблицу.

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

Допустим, в столбце есть число 3, а в строках — 3.

Мне нужно сделать это как display,

|___d1__|___d2__|___d3__|
|___d4__|___d5__|___d6__|
|___d7__|___d8__|___d9__|

Где d1-d9 — это данные, хранящиеся в базе данных MySQL с разделителем «,» в одной таблице.

Спасибо за помощь.

Это было полезно?

Решение

Вы можете превратить значения, разделенные запятыми, из столбца данных в массив, используя функцию взрыв():

<?php
  $result = mysql_query('SELECT rows, columns, data from table_name where id=1');
  $record = mysql_fetch_assoc($result);

  $rows = $record['rows'];
  $columns = $record['columns'];

  $data = explode(',' , $record['data']);

  if (sizeof($data) != $rows * $columns) die('invalid data');
?>

Для отображения таблицы нужны два вложенных цикла for:

<table>
<?php for ($row = 0; $row < $rows; $row++) : ?>
    <tr>
    <?php for ($column = 0; $column < $columns; $column++) : ?>
        <td>
            <?php echo $data[$row * $columns + $column]; ?>
        </td>
    <?php endfor ?>
    </tr>
<?php endfor ?>
</table>

Другие советы

Это не поможет вам решить эту самую проблему, но небольшой совет:НИКОГДА не записывайте значения, разделенные запятыми, в поле базы данных.Вы не сможете разумно запрашивать информацию, хранящуюся таким образом, и код вашего приложения будет загромождён уродливыми преобразованиями.Вместо этого используйте отдельную таблицу со ссылкой на основную таблицу и одной строкой на каждое значение.

предполагая, что пользователь установил размер таблицы для 2 строк и 3 столбцов и вводит некоторые данные для 6 ячеек, данные, которые будут поступать в базу данных, будут

2,3,d1,d2,d3,d4,d5,d6

когда вы извлечете данные из ячейки и разнесете полученную строку, вы получите одномерный массив с 8 элементами

$r = $e[0] строк

$c = $e[1] столбцы

$e[2-7] данные

  • написать открывающий тег <table>
  • две петли, одна в другой,
  • первый сгенерирует код для начала строки
  • написать открывающий тег <tr>
  • внутри одного будет сгенерирован код для строки.
  • написать открывающий тег <td>
  • запись данных $e[1 + позиция, рассчитанная из внутреннего и внешнего циклов]
  • написать закрывающий тег <td>
  • конец внутреннего цикла
  • написать закрывающий тег <tr>
  • конец внешнего цикла
  • написать закрывающий тег <table>

Это должно дать вам представление

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top