Como executar consultas no Joomla

Sempre fico com dúvida de como fazer consultas no Joomla, esse documento ajuda a lembrar qual função é melhor para retornar os dados dependendo do que desejo.

loadResult( ) : string
Retorna a primeira célula de uma consulta
$query = 'SELECT 'name' FROM '#__test' WHERE 'id'=2';
$db =& JFactory::getDBO();
$db->setQuery($query);
echo $db->loadResult();
Bar
loadResultArray( numinarray : int=0 ) : array
This method loads a column. numinarray is used to specify which column to get; the column is identified by its logical position in the result set.
Essa função recebe como parâmetro o número da coluna do select e o retorna.
$query = 'SELECT 'name' FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadResultArray());
Array
(
 [0] => Foo
 [1] => Bar
)
loadAssoc( ) : array
Retorna a primeira linha de uma consulta em forma de um array com o índice sendo o nome da coluna. Se a consulta retornar mais que uma linha será considerada apenas a primeira.
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadAssoc());
Array
(
 [id] => 1
 [name] => Foo
)
loadAssocList( key : string='' ) : array
Retorna o resultado do select em um array multidimensional, o primeiro índide do array será o número da linha e o segundo será o nome do campo.
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadAssocList());
Array
(
 [0] => Array
 (
  [id] => 1
  [name] => Foo
 )
 [1] => Array
 (
  [id] => 2
  [name] => Bar
 )
)
loadObject( ) : stdClass
Retorna a primeira linha do select como sendo um objeto.
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadObject());
stdClass Object
(
[id] => 1
[name] => Foo
)
loadObjectList( key : string='' ) : array
Retorna o resultado da conulta criando um objeto para cada linha.
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadObjectList());
Array
(
 [0] => stdClass Object
 (
  [id] => 1
  [name] => Foo
 )
 [1] => stdClass Object
 (
  [id] => 2
  [name] => Bar
 )
)
loadRow( ) : array
Retorna a primeira linha da consulta na forma de um array
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadRow());
Array
(
[0] => 1
[1] => Foo
)
loadRowList( key : int ) : array
Retorna um array multidensional com o resultado da consulta. Podemos passar o número do campo que desejamos que seja a chave do primeiro array como parâmetro.
$query = 'SELECT * FROM '#__test';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadRowList(0));
Array
(
 [0] => Array
 (
  [0] => 1
  [1] => Foo
 )
 [1] => Array
 (
  [0] => 2
  [1] => Bar
 )
)

2 comentários: