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
Форумы портала PHP.SU :: Версия для печати :: Вопрос по Zend Framework 2
Форумы портала PHP.SU » » CMS и фреймворки » Вопрос по Zend Framework 2

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

1. vova3261 - 10 Марта, 2015 - 15:15:33 - перейти к сообщению
Всем привет, помогите пожалуйста с таким вопросом в 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? Если это возможно конечно)
2. Мелкий - 10 Марта, 2015 - 15:30:48 - перейти к сообщению
vova3261 пишет:
$result -> current();

Ну так просите одну строку - получаете одну строку.
Скорей всего это часть итератора
3. armancho7777777 - 10 Марта, 2015 - 16:20:24 - перейти к сообщению
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. }
?
4. teddy - 10 Марта, 2015 - 18:17:52 - перейти к сообщению
armancho7777777
Явное обращение к ResultSet тут не нужно он и так вернется, нужно просто закинуть в форыч $result и в качестве значения будет "сваливаться" экземпляр ArrayObject, а там уже можно с ним работать как с объектом или как с массивом, на выбор.

ТС это все что тебе нужно
5. armancho7777777 - 10 Марта, 2015 - 20:10:20 - перейти к сообщению
teddy пишет:
Явное обращение к ResultSet тут не нужно он и так вернется

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

Не знаю правильно ли, но главное требуемый массив я получаю Радость
7. teddy - 14 Марта, 2015 - 10:35:29 - перейти к сообщению
vova3261 пишет:
Не знаю правильно ли

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

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

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

 

Powered by ExBB FM 1.0 RC1