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');