Jak naplnit asociativní pole položkami z DB?

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

Zdravím,
dotaz zní, jak nejefektivněji vyplnit asociativní pole položkami z DB. Zkoušel jsem něco takového, ale je to nesmysl, protože nemohu psát do deklarace pole foreach. Děkuji moc za každou kloudnou odpověď.

$examples = $this->database->table('table');

$assArray = [
        foreach ($examples as $example){
        	"$example->ID" => "$example->TEXT",
		}
];
Hug0
Člen | 35
+
0
-

Ahoj,
použij array_map

CZechBoY
Člen | 3608
+
+2
-

Chapu to tak, ze chces jako klic hodnotu z ID a jako hodnotu k tomu prvku v poli hodnotu sloupce TEXT

$arr = $examples->fetchAssoc('ID=TEXT');
blaztar
Člen | 93
+
+2
-

Myslím, že úplně stejně můžeš použít i toto:

$examples->fetchPairs('ID', 'TEXT');

Jinak syntaxi ‚ID=TEXT‘ jsem neznal. Co tak koukám tak to fetchAssoc je hodně universální. Můžeš si tam zkusit poslat tyto věci a koukat co ti to vrátí, třeba to později využiješ.

$examples->fetchAssoc('ID');
$examples->fetchAssoc('ID=TEXT');
$examples->fetchAssoc('ID->TEXT');
$examples->fetchAssoc('ID|TEXT');
$examples->fetchAssoc(['ID', 'TEXT']);

Editoval blaztar (19. 3. 2017 19:32)

AZJOL
Člen | 34
+
0
-

Děkuji moc všem!! Pochopili jste to dobře a funguje mi to!

AZJOL
Člen | 34
+
0
-

Ještě jeden dotaz borci.

Co když chci k ID přidat string?
"1" => "red" --------> "1asd" => "red".

Věděli byste?

CZechBoY
Člen | 3608
+
+1
-

Napada me jedine concat v sql selectu.

AZJOL
Člen | 34
+
0
-

Presne tak jsem to nakonec udelal! Jsem rad, ze mame stejne napady. Diky!!