Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как создать многомерный массив из 4-х таблиц БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Решение почти решено но осталось маленькая но серйозная неточность
like
Отправлено: 24 Марта, 2016 - 11:54:35
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Здраствуйте дорогие форумчани! Сижу 5 день и ни как нерешу задачу перелапатил пол интернета но ненашол решения своей проблеми а имено:
Вивести(создать) многомерний масив из 4-х таблиц БД (как би получилось но несовсем)
1табл = orders_user_name (все дание заказчиков)(для теста 3строки)
2табл = orders (все товари заказчиков)(для теста 8строк)
3табл = rozmir (дополнительние дание каталога товара)(для теста 4строк)
4табл = catalog (каталог з товаром)(для теста 3строк)
PHP:
скопировать код в буфер обмена
  1. function getOrders(){
  2.         global $a;//соидинение з базой даних
  3.         $allorders = array();
  4.         $result = mysqli_query($a, "SELECT * FROM orders_user_name ") or die (mysqli_error($a));//покажет сколько заказов (1 уровень масива)
  5.         $orders = db2Array($result);//здесь переважу в асоциативний масив
  6.         foreach($orders as $order){//создаю 2 уровень масива
  7.                 $orderinfo = array();
  8.                 $orderinfo["oun_id"] = $order["oun_id"];
  9.                 //... куча строк
  10.                 $orderinfo["oun_dropshiper"] = $order["oun_dropshiper"];
  11.                 $result = mysqli_query($a, "SELECT * FROM
  12. //тут проблема описана в низу
  13.                 LEFT JOIN orders  ON o_datetime={$orderinfo["oun_datatime"]} AND o_customer= '{$order["oun_ses"]}'
  14.                 LEFT JOIN rozmir ON o_big=r_id
  15.                 LEFT JOIN catalog ON o_idtovar=idtovar") or die(mysqli_error($a));
  16.                 $orderinfo["goods"] = db2Array($result);//виводит 3 уровень массива
  17.                 $allorders[] = $orderinfo;
  18.         }
  19.         return $allorders;
  20. }      

ПРОБЛЕМА!!! не знаю что туда указать что би вивело верно весь масив при грамотном воде одной из 4 указаних таблиц возникаєт посвоему своя неточность.
1. При таблице "orders_user_name"(тест 3 строки) - 3 уровень масива умножаеться на то количество сколько в таблице строк(в даний момент 3).
2. При таблице "orders"(тест 8 строк) - к 3 уровню масива добавляет пустие ключи (есть4 то дабавит+4(пустих)=8; есть 3 то добавит+5(пустих)=8 и так далие)(в тесте там 8строк потому и равно 8(а в робочем будет несколько тисяч))
3. При таблице "rozmir"(тест 4 строки) - тоже самое что и приведущие только равно не 8 а 4
4. При таблице "catalog"(тест 3 строки(товара)) - идет сравнение что есть в 3-м уровне масива(а он состоит из заказаного товара пользователем) и книму добавляет весь отсуствующий асортимент товара з таблици catalog. Пример: если 1 товар значить добавит 2 остальних(пустишки). Если 2 повторящихся значит добавит отсуствующие два. если 2 товара то добавит один отсуствуещий.
5. Пробовал таблицу пустишку так вобща 3уровень масива пустой.
Вот такой масив формируеться как я и хотел но там проблема
Array
(
[0]=>array([0]=>""...[goods]=>array([0]=>...[n]=>""(тут все проблеми описание верху)))
[1]=>array([0]=>""...[goods]=>array([0]=>...[n]=>""(тут все проблеми )))
[2]=>array([0]=>""...[goods]=>array([0]=>...[n]=>""(тут все проблеми )))
)
Пробовал функцию GROUP_CONCAT но она виводит масив так
Array(
[0]=>array([0]=>""... GROUP_CONCAT[ключ]=>(и перечисляе весь столбик таблици БД через запятую а не как отдельное канкретно указаное значения).
 
 Top
like
Отправлено: 24 Марта, 2016 - 14:57:33
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Спосибо всем большое за такую очередную многогласную подержку.
Очередная победа и головная боль над PHP кодомБокс
Всетаки помогает ваш форум, пока опишеш проблему на форум то и находиш решение сам Радость а решил заменив первий LEFT JOIN на INNER JOIN и всьо как по маслу пошло
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB