dibi – získání hodnot z jednoho sloupce do 1D pole

- Filip111
 - Člen | 244
 
Ahoj, marně se snažím přijít na to jak pomocí dibi získat jednoduše data z jednoho sloupce tabulky do jednoduchého pole. Zkoušel jsem fetchAssoc, fetchPairs apod., ale vždy to vrací pole
Array (
	[0] => DibiRow Object ( [id] => 1 )
	[1] => DibiRow Object ( [id] => 3 )
)
Já bych potřeboval jen
Array (
	[0] => 1
	[1] => 3
)
Jako nouzovku jsem to řešil ručním přeskládáním hodnot přes foreach,
ale to je prasárna.
V ADODB jsem na to používal getCol, v dibi jsem ale nic podobného
nenašel.
Díky.

- Ot@s
 - Backer | 476
 
Pro Tvoji konkrétní potřebu nic takového v dibi není, tj. musíš si to
sám dotáhnout.
Nezkoušeno…
// pokud zalezi na zachovani vsech radku
$results = dibi::fetchAll('SELECT * FROM xyz');
array_walk( (array) $results, function (&$r) { $r = $r['id']; } );
}
// nebo to hnat pres fetchPairs, resp. id je soucasne key
$results = dibi::query('SELECT id FROM xyz')->fetchPairs('id', 'id');
				
- Filip111
 - Člen | 244
 
fetchPairs jsem zkoušel – to mi nepomůže, indexem je klíč, který nemusí být kontinuální a pokud budu dotazovat jiný sloupec než id, třeba nějaké textové hodnoty, mam smůlu.
S array_walk to vidím cca na stejnou složitost jako s foreach, takže to taky nic moc neřeší.
Napíšu si na to vlastní funkci nebo nebo kouknu jestli jde rozšířit dibi.

- Milo
 - Nette Core | 1283
 
Dá se jak psal iguana007, nebo
Dibi::query('SELECT col FROM ...')->fetchPairs(NULL, 'col');