@Bezpaniki

Как сформировать одномерный из многомерного массива из столбцов MySQL с одинаковыми ключами массива?

Добрый день,бьюсь над такой задачей,буду благодарен за ответ.

Имеем базу банных, с таблицами users и leads, в первой таблице хранятся имена менеджеров и их id(не инкремент), во второй таблице хранятся все сделки проведённые этими менеджерами.

----------------------------users------------------------
| id_users | id | name | last_name | login |
-----------------------------------------------------------
1 | 738687| Михаил | Иванов | qwwee |
-------------------------------------------------------------
2 |817770 | Дмитрий | Петров | refhrter |
Ну и так далее, скажем пользователей 6.

----------------------------------------leads---------------------------------------------------------
| id_lead | id | name | date_create | responsible_user_id | price | date_cloce |
-------------------------------------------------------------------------------------------------------
1 | 704077| Ваш дом | 1463328190 | 738687| | 47474 | 0 |
-------------------------------------------------------------------------------------------------------
3 | 333333| Наш сад | 1484204113 | 817770 | | 44444 | 1485419792|
ну и так далее
Ключ это responsible_user_id и id из таблицы users. формирую запрос
$test= $qwerty->TransferToTheDatabase->getRows(('SELECT users.name , leads.date_close, leads.name FROM users INNER JOIN leads ORDER BY users.name')); название класса и переменная были изменены=)

После этого запроса выводится многомерный массив отсортированный по именам, но в него не попадают имея сделки, не понятно почему или же я коряво запрос составил,как только убираешь из запроса users.name , то появляются название сделки.
дальше я пытаюсь собрать всё в один одномерный массив ,что бы потом его сериализировать и отправить ребятам,которые пилят дашборд.

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($test));

function addingInArray(\Traversable $iterator, $use_keys = false) {
$array = array();
foreach ($iterator as $key => $value) {
if ($value instanceof \Iterator) {
$value = iterator_to_array_deep($value, $use_keys);
}
if ($use_keys ) {
$array[] = $value;
}
}
return $array;
}
так -то формирует массив сбрасывая ключи и набивая их значениями,что крайне не удобно для подсчета кол-во сделок пользователя, если поставить $use_keys = true, то выведет всех менеджеров и одну их сделку.
Вопрос такой можно ли получить массив вида Имя менеджера и все его сделки с датой закрытия?
Возможно не корректно поставил вопрос,но все же буду благодарен за помощь
  • Вопрос задан
  • 280 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Bezpaniki Автор вопроса
Ели что-то не понятно,то поясню.
Ответ написан
Комментировать
gromdron
@gromdron
Работаю с Bitrix24
Эм.. то что вы поменяли название, это не значит что код стал понятнее.
Попробуйте вывести результат запроса напрямую (выполнить его в БД) или задать явные имена столбцов: SELECT users.name as username , leads.date_close as closed_at, leads.name as leadname FROM users INNER JOIN leads ORDER BY users.name'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы