Vrátí že pokud produkty jen pokud splňuje podmínku
- jAkErCZ
- Člen | 322
Zdravím,
potřebuji udělat SQL které bude splňovat že pokud oldPrice
je větší než Price tak se ten produkt vrátí.
Mé řešení:
$products = $this->database->table(self::TABLE_NAME)
->where('NOT ' . self::TABLE_NAME . '.' . self::COLUMN_HIDDEN);
$products->where(self::COLUMN_PRICE_OLD > self::COLUMN_PRICE );
Ale nevrací to nic i když by mělo…
Kde dělám chybu?
Díky
- David Matějka
- Moderator | 6445
koukni se poradne, jak vytvaris ten where. mozna ti pomuze nakouknout, jak vypada vygenerovany dotaz. je tam videt chyba na prvni pohled
- GEpic
- Člen | 566
Co by tohle mělo dělat?
->where('NOT ' . self::TABLE_NAME . '.' . self::COLUMN_HIDDEN);
Nechtěl bys spíš toto (jestli máš ve sloupečku hidden hodnoty 0 / 1)?
->where(self::COLUMN_HIDDEN, 0);
A to druhé by mělo být nejspíš takto, protože jinak se ti ty
2 konstanty porovnají a vrátí buď true
nebo
false
, ty potřebuješ vytvořit string.
->where(self::COLUMN_PRICE_OLD . " > " . self::COLUMN_PRICE);
Editoval GEpic (17. 5. 2018 16:36)
- jAkErCZ
- Člen | 322
GEpic napsal(a):
Co by tohle mělo dělat?
->where('NOT ' . self::TABLE_NAME . '.' . self::COLUMN_HIDDEN);
Nechtěl bys spíš toto (jestli máš ve sloupečku hidden hodnoty 0 / 1)?
->where(self::COLUMN_HIDDEN, 0);
A to druhé by mělo být nejspíš takto, protože jinak se ti ty 2 konstanty porovnají a vrátí buď
true
nebofalse
, ty potřebuješ vytvořit string.->where(self::COLUMN_PRICE_OLD . " > " . self::COLUMN_PRICE);
Super přesně tohle jsem myslel ale mám takový dotaz jelikož k tomu sem
nenašel nic… je nějak možnost udělat že pokud je cena rozdílná tak
vrátí produkt ( S čím si mi pomohl a to funguje ) ale ještě že pokud má
označený jako novinka tak se tak ho to taky vypíše…
Snad mě chápeš to znamená buď to vrací pokud nová cena je menší než
stará ale zároveň aby to vracelo popřípadě i produkty který mají
nastaveno že jsou novinka…