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 :: Вопрос по Zend Framework 2

 PHP.SU

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


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

> Без описания
vova3261
Отправлено: 10 Марта, 2015 - 15:15:33
Post Id


Новичок


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


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




Всем привет, помогите пожалуйста с таким вопросом в zend framework 2: надо сделать простую выборку всех данных из таблицы
PHP:
скопировать код в буфер обмена
  1. $result = $Adapter->query("SELECT * FROM test", $Adapter::QUERY_MODE_EXECUTE);
  2.  
  3.                 $info = $result -> current();
  4.                 var_dump $info;
вот так как-то, и проблема в том, что запрос возвращает мне
только первую строчку таблицы, ну или конкретно ту, которую я укажу, а все не возвращает как можно добиться , чтобы получить все данные желательно без использования TableGetaway? Если это возможно конечно)

(Отредактировано автором: 10 Марта, 2015 - 15:23:41)

 
 Top
Мелкий Супермодератор
Отправлено: 10 Марта, 2015 - 15:30:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




vova3261 пишет:
$result -> current();

Ну так просите одну строку - получаете одну строку.
Скорей всего это часть итератора


-----
PostgreSQL DBA
 
 Top
armancho7777777 Супермодератор
Отправлено: 10 Марта, 2015 - 16:20:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




PHP:
скопировать код в буфер обмена
  1. use Zend\Db\Adapter\Driver\ResultInterface;
  2. use Zend\Db\ResultSet\ResultSet;
  3.  
  4. $result = $Adapter->query("SELECT * FROM test", $Adapter::QUERY_MODE_EXECUTE);
  5.  
  6. if ($result instanceof ResultInterface && $result->isQueryResult()) {
  7.     $resultSet = new ResultSet;
  8.     $resultSet->initialize($result);
  9.  
  10.     foreach ($resultSet as $row) {
  11.         var_dump($row);
  12.     }
  13. }
?

(Отредактировано автором: 10 Марта, 2015 - 16:22:23)

 
 Top
teddy
Отправлено: 10 Марта, 2015 - 18:17:52
Post Id


Участник


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


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




armancho7777777
Явное обращение к ResultSet тут не нужно он и так вернется, нужно просто закинуть в форыч $result и в качестве значения будет "сваливаться" экземпляр ArrayObject, а там уже можно с ним работать как с объектом или как с массивом, на выбор.

ТС это все что тебе нужно
 
 Top
armancho7777777 Супермодератор
Отправлено: 10 Марта, 2015 - 20:10:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




teddy пишет:
Явное обращение к ResultSet тут не нужно он и так вернется

Да, верно.
 
 Top
vova3261
Отправлено: 14 Марта, 2015 - 03:11:49
Post Id


Новичок


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


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




Всем спасибо решил следующим образом
PHP:
скопировать код в буфер обмена
  1. $result = $Adapter->query("SELECT * FROM test", $Adapter::QUERY_MODE_EXECUTE);
  2.  
  3.                 $info = $result -> toArray();
  4. return $info;

Не знаю правильно ли, но главное требуемый массив я получаю Радость
 
 Top
teddy
Отправлено: 14 Марта, 2015 - 10:35:29
Post Id


Участник


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


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




vova3261 пишет:
Не знаю правильно ли

Тут все зависит от того, что вообще нужно сделать в конечном счете.

Если требуется получить именно массив и требуется его дополнительная обработка, например применить к нему функции для работы с массивами, тогда все четко.

А если надо просто вывести данные в цикле, тогда не нужно делать лишние телодвижения вызывая toArray.

(Отредактировано автором: 14 Марта, 2015 - 10:36:08)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB