fetchAll – jak zjistit počet načtených řádků

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Honza.Mottl
Člen | 104
+
0
-

Ahoj,
načítám položky pomocí fechAll do pole. Když je načteno více záznamů, tak dostanu pole polí. Pokud je načten jeden záznam, dostanu jednorozměrné pole.

Jak nejlépe zjistit počet dodaných záznamů? Zatím mne napadlo pouze zjistit počet dimensí pole (viz funkc e dole ze stackoverflow).

Díky
Honza

    public function getPripadPolozky($id)
    {
        return $this->database->table(self::PRIPADPOL_TABLE_NAME)
            ->select('*')
            ->where(self::PRIPAD_COLUMN_ID, $id)
            ->order(self::PRIPADPOL_COLUMN_ID.' ASC')
            ->fetchAll();
    }


function count_dimension($Array, $count = 0) {
   if(is_array($Array)) {
      return count_dimension(current($Array), ++$count);
   } else {
      return $count;
   }
}
Michal Hlávka
Člen | 190
+
+3
-

Snad jsem tě pochopil správně, chceš počet načtených položek, to ti normálně spočítá funkce count(), pokud budeš mít jedno pole, nebo pole polí, furt ti bude počítat na první úrovni a dostaneš počet záznamů.

Honza.Mottl
Člen | 104
+
0
-

Díky. Máš pravdu, dá se použít count ve smyslu funkce iterátoru. Nikoliv stejnojmenné metody třídy Selection.

Zblblo mne, že jsem v Tracy pro jeden záznam neviděl pole a tak jsem přemýšlel jak s tím výsledkem budu zacházet. Ale on tam žádný problém není, protože výsledek je Traversable a tak za mne vše vyřeší foreach.