tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

fetchAssoc() vrací vždy jako list DibiRow nebo pole?

před 10 lety

paranoiq
Člen | 388

ahoj, dá se nějak zařídit, aby fetchAssoc() vracela jako list struktury jedinný sloupec namísto celého řádku?

např. tohle vrátí jako list celý řádek formou DibiRow

$res = dibi::query("SELECT `group`, `code`, `description` FROM `some_table`;");
debug::dump($res->fetchAssoc('group,code,description'));

potřebuji např. takový výstup:

array(
    'group1' => array(
        'code1' => 'descr1',
        'code2' => 'descr2',
    ),
    'group2' => array(
        'code3' => 'descr3',
    ),
)

před 10 lety

paranoiq
Člen | 388

díky Davidovu vysvětlení si můžu odpovědět sám :)

v nové verzi dibi byl předělán formát associative descriptoru.
sloupce se nové oddělují svislítkem |, pokud má být výsledná struktura asociativní pole, nebo šipkou ->, pokud má být výstup objekt. pokud má být listem pouze jedinný sloupec, stačí před jeho jméno napsat rovnítko =

to co jsem chtěl se tedy dá docílit takto:

$res->fetchAssoc('group|code=description');`

nová syntax je EXPERIMENTÁLNÍ a stará je stále podporována

Editoval paranoiq (2. 11. 2009 10:41)