Vrácení hodnot ze sloupce jako pole
- Webster.K
- Člen | 211
Zdravím všechny, řeším takovou jobovku na kterou vůbec nevím, jak si s ní poradit. Existuje nějaký jednoduchý způsob na db jak vrátit pole?
něco co nalepím za tento dotaz $data = $this->database->table(‚tabulka‘)->select(‚prvni_sloupec‘);
To o co mi jde, mám tabulku ve formátu:
prvni_sloupec|druhy_sloupec|treti_sloupec
1|2|3
4|5|6
7|8|9
A ja bych potřeboval, aby hodnota dat podle dotazu nabyla jen hodnot třeba z prvního sloupce – [1,4,7] – jak toho docílit? Vždycky buď 1 ⇒ array(prvni_sloupec=>1), 2⇒ array(prvni_sloupec=>4) a podobně, nebo to hodí error protože to co jsem vymyslel je kravina, ale nic, co by mi vrátilo vyloženě pěkně pole. Jde mi o to, abych nemusel udělat další zbytečný foreach cyklus ve kterém až teprve to získám.
- Webster.K
- Člen | 211
Odpověď od ChatGPT která opravdu funguje a udělá přesně to co jsem potřeboval:
V Nette Database lze použít metodu fetchPairs, která umožní rovnou získat hodnoty z jednoho sloupce do pole bez nutnosti dalšího cyklu. K dosažení toho, co popisujete, byste mohl použít tento postup:
$data = $this->database->table('tabulka')->select('prvni_sloupec')->fetchPairs(null, 'prvni_sloupec');
Použitím fetchPairs(null, ‚prvni_sloupec‘) dosáhnete toho, že se vám vrátí pouze hodnoty z prvního sloupce jako jednorozměrné pole:
// Výstup:
$data = [1, 4, 7];
null jako první parametr v fetchPairs říká, že nechcete použít
klíče z databáze, ale automaticky generované.
Druhý parametr ‚prvni_sloupec‘ určuje, že chcete pouze hodnoty z tohoto
sloupce.
Editoval Webster.K (27. 10. 16:22)