Intereting Posts
Стиль в xampp отличается от файлов на моем рабочем столе? Как я могу добавить подсказку с драйвером в процесс проверки magento onepage? Вкладки Drupal $, не включая редактирование / ревизии / рабочий процесс PHP 5.2.x: $ _POST пуст, если какое-либо поле имеет значение «отбрасывать любые слова из любых слов»? Удалить / Скрыть Woocommerce Добавлен в корзину Сообщение, но Keep / Display Coupon Applied Message Как преобразовать текстовый URL-адрес в ссылку с возможностью клика на странице PHP? Использование JQgrid и sortableRows. Обновить порядок строк в таблице exec () ожидает ответа в PHP Mongodb php получает идентификатор нового документа? PHP-форма для MySQL-Array в MySQL-проблема PHP – обработка недопустимого XML Expose «использовать» классы для включенного файла Загрузка файлов без возникновения ошибок на стороне сервера во время процесса Как создать диапазон дат из массива? как заставить хром не перезагружать изображения с тем же URL-адресом, пока страница не обновится, как firefox

Возвращение двухмерного массива из SQL-запроса

Есть ли способ вернуть двухмерный массив из SQL-запроса? Подобно..

"SELECT id, x, y, z FROM test"

.. и вернуть его как id => x, y, z? Я мог бы сделать цикл и создать второй массив, но я полагаю, что это дополнительная работа, которую мне, возможно, не придется делать. Просто не знакомы с SQL прямо сейчас.

В PHP SQL-запросы будут возвращать только наборы результатов. Строки и столбцы.

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

$result = mysql_query(...); $aData = array(); while($row = mysql_fetch_assoc($result)) $aData[$row['id']] = array($row['x'], $row['y'], $row['z']); 

Ответ на ваш вопрос – нет, нет никакого способа сделать это.

Реляционные базы данных представляют собой, по существу, двумерные структуры. Они могут представлять отношения между структурами, но все данные хранятся в плоском, двумерном виде и запрашиваются и возвращаются как таковые. К сожалению, нет концепции структур данных так же, как у них есть языки программирования. Любой результат, полученный из SQL-запроса, всегда будет представлять собой скалярный набор данных полей и значений. PHP делает это немного проще, возвращая имена столбцов в виде ключей массива, а значения полей – как значения массива, но это насколько возможно.

Чтобы вывести результаты в многомерный массив, вам нужно будет сделать это с помощью PHP после того, как вы получите результаты из базы данных.

SQL уже возвращает 2D-набор данных – несколько строк, каждый из которых имеет одинаковые поля в строке. Когда вы выберете SELECT id, x, y, z FROM test , он вернет значения id , x , y и z для каждой строки test . id связан с x , y и z потому что он возвращается в той же строке.

Если вам нужна структура данных PHP, которая отображает значения id в x , y и z , вам нужно будет сделать инструкцию SELECT и построить эту структуру данных из набора результатов.