Joomla.it Forum

Non solo Joomla... => Sviluppo => : mitchie 24 Nov 2010, 23:54:12

: query nel modulo non funziona
: mitchie 24 Nov 2010, 23:54:12
Ciao a tutti,
sarà l'ora ma sono bloccato in un problema che trovo stupidissimo... ma tant'è, non riesco a trovare una soluzione.

In un modulo per J 1.5, di una banalità disarmante, tanto per testarne il funzionamento, ho inserito una query nell'helper all'interno di una funzione. Niente di che :
$query="SELECT * FROM #__components";
$db->setQuery( $query );

Non riesco però a listare più di una riga, in pratica mi lista solo l'ultima. Neanche cambiando tabella.
Ho eseguito dei controlli, sempre all'interno della funzione (!), quindi non c'è problema di passaggi di info o altro, se eseguo:
$db->query();
$num=$db->getNumRows();
$num restituisce 90, che sono esattamente le righe che ho nella tabella.
Se però eseguo
$rows = $db->loadObjectList( $query);
$num = count($rows);
$num restituisce 1 e infatti mi lista solo l'ultima riga della tabella.

Cosa mi sfugge? Le query nei moduli funzionano in modo diverso da come funzionano nei componenti?

: Re:query nel modulo non funziona
: Piumy 25 Nov 2010, 01:01:50
ti sfugge che in loadObjectList non gli devi passare la $query
gliel'hai già passata in setQuery

$rows = $db->loadObjectList();

ciao
: Re:query nel modulo non funziona
: mitchie 25 Nov 2010, 13:20:12
...e mia moglie continuava a dire "ma ancora non vieni a letto?"... Dovevo darle retta!  :)
Grazie!
: Re:query nel modulo non funziona
: mau_develop 25 Nov 2010, 18:35:12
$rows = $db->loadObjectList( $query);
$num = count($rows);
----------------------------------------------------
si può usare count() su una standard class?
loadobjectlist è un array di stdClass, per cui se fai count e hai un oggetto la lunghezza dell'array è 1

...ma magari dico stupidate io,nn ricordo e nn ho voglia di controllare...


M.
: Re:query nel modulo non funziona
: mmleoni 30 Nov 2010, 21:55:23
loadObjectList restituisce un array quindi si può usare count, tuttavia se si passa un parametro questo deve essere la primary key della tabella... se no succedono cose strane  :D

ciao