Oznámení
Omlouváme se, provoz fóra byl ukončen
podmínka pomocí kombinace modifikátorů %and a %or
Upozornění: Tohle vlákno je hodně staré.
před 9 lety
- BigCharlie
- Člen | 267
Snažím se získat dotaz, který bude podobný něčemu takovémuto:
<?php
SELECT * FROM xy WHERE (a like '%xx%' OR b like '%xx%') AND (c = 54)
?>
Jde podmínka zapsat kombinací modifikátorů do pole? Něco jako
<?php
$q->where('%and', array(
'%or' => array(
"a like '%xx%'",
"b like '%xx%'",
),
array(
'c = 54'
),
));
?>
před 9 lety
- BigCharlie
- Člen | 267
Tak jsem to zatím obešel tímto způsobem:
<?php
$q->where('(%or)', array(
"a like '%xx%'",
"b like '%xx%'",
)
);
$q->and('c = %i', 54);
?>
Což funguje podle očekávání, netušil jsem totiž, že modifikátory nevyžadují být okamžitě následovány proměnnou.
Ale pokud někoho napadá jiné řešení, stále naslouchám, u modifikátorů člověk s učením nikdy neskončí.
Edit: pokud je někde v poli chyba zápisu, nekamenujte mě, píšu to z hlavy tak, aby byl jasný smysl.
Editoval BigCharlie (19. 4. 2010 15:27)
před 9 lety
- David Grudl
- Nette Core | 6806
V podstatě stačí tam nedávat ty klíče:
->where('%and', array(
array('%or', array(
"a like '%xx%'",
"b like '%xx%'",
)),
array(
'c = %i', 54,
),
));