Joomla.it Forum
Non solo Joomla... => Sviluppo => : 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?
-
ti sfugge che in loadObjectList non gli devi passare la $query
gliel'hai già passata in setQuery
$rows = $db->loadObjectList();
ciao
-
...e mia moglie continuava a dire "ma ancora non vieni a letto?"... Dovevo darle retta! :)
Grazie!
-
$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.
-
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