Привет,
У меня есть данные, хранящиеся на mysql с разделителем "," в 1 таблице. У меня также есть строки и столбцы, хранящиеся в базе данных. Теперь мне нужно вывести данные, используя строки и номера столбцов, хранящиеся в базе данных, чтобы нарисовать таблицу.
Номера строк и столбцов вводятся пользователем, поэтому они могут варьироваться.
Скажем, есть номер 3 в столбце и 3 в строках.
Мне нужно сделать это как дисплей, например,
|___d1__|___d2__|___d3__|
|___d4__|___d5__|___d6__|
|___d7__|___d8__|___d9__|
Где d1-d9 - это данные, хранящиеся в базе данных mysql с разделителем "," в одной таблице.
Спасибо за помощь.






Предполагая, что пользователь установил размер таблицы для 2 строк и 3 столбцов и сделал некоторые входные данные для 6 ячеек, данные, которые будут отправлены в базу данных, будут
2,3,d1,d2,d3,d4,d5,d6
когда вы извлечете данные из ячейки и сделаете взрыв на выбранной строке, вы получите 1 размерный массив с 8 элементами
$ r = $ e [0] строк
$ c = $ e [1] столбец
$ e [2-7] данные
Это должно дать вам представление
Это не поможет вам решить эту проблему, но один хороший совет: НИКОГДА не записывайте значения, разделенные запятыми, в поле базы данных. Вы не можете разумно запрашивать информацию, хранящуюся таким образом, и код вашего приложения будет загроможден некрасивыми преобразованиями. Вместо этого используйте отдельную таблицу со ссылкой на основную таблицу и по одной строке для каждого значения.
Это действительно помогает ему, вместо этого он может написать процедуру для исправления таблиц, а затем написать разумные запросы вместо того, чтобы пытаться пойти этим путем.
Вы можете превратить значения, разделенные запятыми, из столбца данных в массив с помощью функции explode ():
<?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>
Снимаю шляпу за понимание вопроса, я думаю, это была самая сложная часть. :-)
такие вещи вызывают у меня головную боль. (извините, не удержался)