jak formulovat dotaz na db
- webmb
- Člen | 4
Ahoj,
mám takový technický dotaz jak položit dotaz na databázi aby neprobíhalo
více dotazů než je třeba.
Mám formulář
$form = $this->factory->create();
$moznostiHloubkyBazenu = array(
'prvkyKruh90' => 'Prvky 90cm hloubka',
'prvkyKruh100' => 'Prvky 100cm hloubka',
'prvkyKruh110' => 'Prvky 110cm hloubka',
'prvkyKruh120' => 'Prvky 120cm hloubka',
);
$form->addRadioList('prvky', 'Požadovaná hloubka: ', $moznostiHloubkyBazenu);
$moznostiHloubkyFolie = array(
'folieKruh90' => 'Bazénová fólie 90cm hloubka',
'folieKruh100' => 'Bazénová fólie 100cm hloubka',
'folieKruh110' => 'Bazénová fólie 110cm hloubka',
'folieKruh120' => 'Bazénová fólie 120cm hloubka',
);
$form->addRadioList('folie', 'Požadovaná hloubka: ', $moznostiHloubkyFolie);
$prislusenstvi = $this->adminOffer->pairsAccessories();
$form->addCheckboxList('prislusenstvi', 'Požadované příslušenství: ', $prislusenstvi);
$form->addTextarea('message', 'Zpráva:');
$form->addSubmit('send', 'Odeslat');
dump formuláře
Nette\Utils\ArrayHash #406c
prvky => "prvkyKruh90" (11)
folie => "folieKruh90" (11)
prislusenstvi => array (2)
0 => "pisek25" (7)
1 => "hadice38" (8)
message => ""
dump databáze
1 => Nette\Database\Table\ActiveRow #8a69
table private => Nette\Database\Table\Selection #eab1
data private => array (5)
id => 1
code => "pisek25" (7)
quantitative_unit => "ks" (2)
title => "Písková náplň 25kg" (22)
price => "220" (3)
dataRefreshed private => false
2 => Nette\Database\Table\ActiveRow #31a2
table private => Nette\Database\Table\Selection #eab1
data private => array (5)
id => 2
code => "skimmer" (7)
quantitative_unit => "set" (3)
title => "Skimmer + osazení" (18)
price => "3025" (4)
dataRefreshed private => false
3 => Nette\Database\Table\ActiveRow #9c34
table private => Nette\Database\Table\Selection #eab1
data private => array (5)
id => 3
code => "hadice38" (8)
quantitative_unit => "ks" (2)
title => "Hadice 38mm" (11)
price => "115" (3)
dataRefreshed private => false
4 => Nette\Database\Table\ActiveRow #cbf7
table private => Nette\Database\Table\Selection #eab1
data private => array (5)
id => 4
code => "schudky120" (10)
quantitative_unit => "ks" (2)
title => "Schůdky 120mm" (14)
price => "2250" (4)
dataRefreshed private => false
5 => Nette\Database\Table\ActiveRow #9746
table private => Nette\Database\Table\Selection #eab1
data private => array (5)
id => 5
code => "prvkyKruh90" (11)
quantitative_unit => "ks" (2)
title => "Prvky 90cm hloubka" (18)
price => "9000" (4)
dataRefreshed private => false
6 => Nette\Database\Table\ActiveRow #aa80
table private => Nette\Database\Table\Selection #eab1
data private => array (5)
id => 6
code => "folieKruh90" (11)
quantitative_unit => "ks" (2)
title => "Bazénová fólie 90cm hloubka" (30)
price => "3000" (4)
dataRefreshed private => false
Dotaz na databázi si představuji něco ve smyslu
$this->database->table(self::TABLE_NAME)->where(self::COLUMN_CODE, ['prvkyKruh90','folieKruh90','pisek25','hadice38'])
nevím zda vzít celou db a pak jí nějak procházet nebo to složit do jednoho dotazu na db který mi vrátí pouze požadované řádky.
Díky za radu
Editoval webmb (19. 8. 2017 11:38)