jak formulovat dotaz na db

webmb
Člen | 4
+
0
-

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)

Kori
Člen | 73
+
0
-

SELECT * FROM table WHERE id IN (1, 2, 3)