Jak řešíte vyhodnocení zaškrtávacích polí v dibi?
- czhyenacz
- Člen | 12
Ahoj, snažím se vyrobit něco jako třídění katalogu. V presenteru mám
nastavený formulář, který vrací tag, který se porovnává u třech tagů
u produktu v databázi a navíc je tam několik zaškrtávací polí ,
kterýma se budou ještě třídit podle kategorie a vrací standartně
TRUE.
Podlše dokumentace jsem udělat přes arry třídění tagů.
public static function fetchVysledekztag2($tag,$doutniky,$sport) {
return dibi::fetchAll('
SELECT *
FROM [darky] WHERE (%or) '
, array(
array('tag1 = %s', $tag),
array('tag2 = %s', $tag),
array('tag3 = %s', $tag),
)
);}
\--
i přidání jedné podmínky, která vyhodnocuje zaškrtnutí pole nějak funguje - vypíše jen doutníky, když je zaškrtlé TRUE (když dám false tak to hodí nějaký error, ale na to je času dost ))
public static function fetchVysledekztag2($tag,$doutniky,$sport) {
return dibi::fetchAll('
SELECT *
FROM [darky] WHERE (%or) and %if '
, array(
array('tag1 = %s', $tag),
array('tag2 = %s', $tag),
array('tag3 = %s', $tag),
)
,$doutniky=="TRUE",'kategorie="Doutníky"'
/* nebo ,$doutniky="TRUE",'kategorie="Doutníky"' ?? - nehází to error(check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2), ale když změní na false, tak se nic nestane */
);
}
ale kdybych chtěl přidat ostatní podmínky na třídění
public static function fetchVysledekztag2($tag,$doutniky,$sport) {
return dibi::fetchAll('
SELECT *
FROM [darky] WHERE (%or) and %if and %if'
, array(
array('tag1 = %s', $tag),
array('tag2 = %s', $tag),
array('tag3 = %s', $tag),
)
,$doutniky=="TRUE",'kategorie="Doutníky"'
,$sport=="TRUE",'kategorie="Sport"'
);
}
tak mi ladička hází pro mě skoro nepochopitelný error.
" You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and 1 kategorie='Sport'' at line 2 "
podle mě musí jít o nějaká pravidla pro přidávání více podmínek if . Víte o nějakých? vůbec nic nemůžu najít. A jak řešíte zaškrtávací pole přes dibi VY? Díky za případnou pomoc. Myslim, že by to pomohlo nejen mě. Metal
- Vojtěch Dobeš
- Gold Partner | 1316
Chyba není tak nepochopitelná, znamená pouze, že výsledný SQL dotaz není platný :). Každopádně tohle patří spíš na dibi fórum.
- czhyenacz
- Člen | 12
.. no to my moc nepomohlo ( ; já bych očekával něco ve stylu
if('%b=1',$doutniky) {'kategorie="Doutníky"'}
(viz. těch pár řádků dokumentace, co je).
vůbec to ale nejde. fakt žádná idea? Podle mě nette zápis v dibi dost
ovlivňuje, proto myslím, že to patří sem. Jinak myslím, že podmínky jsou
jedna ze základních věcí.. tak by to snad neměl být problém, Děkuji
- Vojtěch Dobeš
- Gold Partner | 1316
Uvedený kód skutečně s Nette nijak nesouvisí, především tak chyba ne. Ač od stejného autora, jsou to odlišné knihovny. Odpověděl jsem podrobněji na dibi fóru.