Как создать двумерный массив на основе данных из базы

310
21 декабря 2016, 02:23

Здравствуйте. У меня есть двумерный массив:

$massiv = array (
 'КАТЕГОРИЯ: Материал' => array (
   0 => 'Дерево',
   1 => 'Сталь',
 ),
 'КАТЕГОРИЯ: Применение' => array (
   0 => 'В сухом помещении',
   1 => 'Сауны',
 ),
);

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

То есть, категорий и под категорий может быть сколько угодно.

Категории хранятся в таблице category , а подкатегории в таблице podcat .

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

Буду благодарен за любую полезную информацию.

Answer 1

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

$sql = 'SELECT `podcat`.`name` as `prodName`, `category`.`name` as `catName` FROM `podcat` INNER JOIN  `category` WHERE podcat.id_cat = category.id;';
$res = $db->query($sql);
$result = [];
while($podcat = $res->fetch(PDO::FETCH_ASSOC)) {
    $result[$podcat['catName']][] = $podcat['prodName'];
}
var_dump($result);

UPD. Вот вариант без PDO:

$sql = 'SELECT `podcat`.`name` as `prodName`, `category`.`name` as `catName` FROM `podcat` INNER JOIN  `category` WHERE podcat.id_cat = category.id;';
$res = mysql_query($query);
$result = [];
while ($podcat = mysql_fetch_assoc($res)) {
    $result[$podcat['catName']][] = $podcat['prodName'];
}
var_dump($result);
READ ALSO
Mysql: обновление триггером своей же таблицы

Mysql: обновление триггером своей же таблицы

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

286
Не выводиться информация

Не выводиться информация

Не выводиться никакой информации(ошибок тоже нет), хотя таблица не не пустая

245
mysql_fetch_array() expects parameter 1 to be resource (or mysqli_result), boolean given

mysql_fetch_array() expects parameter 1 to be resource (or mysqli_result), boolean given

Я пытаюсь получить данные из таблицы MySQL, но вылезает одна из этих ошибок:

426