PHP MYSQL - справка Explode

Привет,

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

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

Скажем, есть номер 3 в столбце и 3 в строках.

Мне нужно сделать это как дисплей, например,

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

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

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

такие вещи вызывают у меня головную боль. (извините, не удержался)

nickf 23.01.2009 08:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
4 597
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

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

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

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

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

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

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

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

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

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

Vinko Vrsalovic 16.11.2008 16:10
Ответ принят как подходящий

Вы можете превратить значения, разделенные запятыми, из столбца данных в массив с помощью функции 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>

Снимаю шляпу за понимание вопроса, я думаю, это была самая сложная часть. :-)

Tomalak 16.11.2008 17:29

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