Ответить Новая тема Новый опрос 
 Как получить массив всех строк
Огонек
Новичок
Сообщений: 24
Регистрация: 20-04-2017


28-05-2017 18:36
Всем привет.
Мозг кипит и никак не остывает
Пытаюсь получить массив из id складов текущего магазина в \controllers\admin\AdminStockInstantStateController.php
Готовлю запрос:
$query123 = new DbQuery();
$query123->select('id_warehouse');
$query123->from('warehouse_shop');
$query123->where('id_shop = '.$id_shop);
Далее, если ставлю
$res = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($query123);
то в массиве только id ПЕРВОГО из всех складов текущего магазина (это и понятно getRow выдает одну строку)
а если
$res = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query123);
то в массиве id первого из всех складов ВСЕХ магазинов, т.е. id=1 (такое ощущение, что игнорируется WHERE и добавляется LIMIT 1)

Выручайте.


 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


28-05-2017 19:28
Цитата:( Огонек @ 28-05-2017 19:36 Смотреть сообщение )
Пытаюсь получить массив из id складов текущего магазина

Код:
Warehouse::getWarehouses(false, $id_shop)

или
Код:
Db::getInstance()->ExecuteS('SELECT `id_warehouse` FROM `'._DB_PREFIX_.'warehouse_shop` WHERE `id_shop` = ' . (int)$id_shop);

или
Код:
Db::getInstance()->executeS((new DbQuery())->select('id_warehouse')->from('warehouse_shop')->where('id_shop = '.$id_shop));


$id_shop можно получить в Context::getContext()->shop->id
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Огонек
Новичок
Сообщений: 24
Регистрация: 20-04-2017


28-05-2017 20:55
Цитата:
$id_shop можно получить в Context::getContext()->shop->id

А причем здесь $id_shop?

Мне нужен массив из id_warehouse текущего магазина!


Сообщение отредактировал Огонек (28-05-2017 16:56)
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


28-05-2017 21:34
Цитата:( Огонек @ 28-05-2017 21:55 Смотреть сообщение )
А причем здесь $id_shop?

Цитата:( Огонек @ 28-05-2017 21:55 Смотреть сообщение )
Мне нужен массив из ... текущего магазина!

ID тек.магазина: :crazy:
Код:
Context::getContext()->shop->id



Цитата:( Огонек @ 28-05-2017 21:55 Смотреть сообщение )
Мне нужен массив из id_warehouse текущего магазина!

Код:
Db::getInstance()->ExecuteS('SELECT `id_warehouse` FROM `'._DB_PREFIX_.'warehouse_shop` WHERE `id_shop` = ' . (int)Context::getContext()->shop->id);
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Огонек
Новичок
Сообщений: 24
Регистрация: 20-04-2017


29-05-2017 00:51
Уважаемый Алекс!
Я понимаю, что это вопрос не по Престе, но я никак не могу из полученного массива сделать
Код:
$arr[0]=3  // id "склад 3"
$arr[1]=4  // id "склад 4"
$arr[2]=5  // id "склад 5"

 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Огонек
Новичок
Сообщений: 24
Регистрация: 20-04-2017


29-05-2017 01:22
Более конкретно:
Код:
foreach ($this->stock_instant_state_warehouses_id as $rec=>$items) {
     foreach ($items as $key => $value)
                            {
                                echo "<b>$value</b><br>";
                            }
                    }



при двух складах (id=3,4) выводит
Код:
3
4
3
4
3
4


Почему 3 раза?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Огонек
Новичок
Сообщений: 24
Регистрация: 20-04-2017


29-05-2017 01:40
Разобрался, не судите строго:)
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос