Vyhledávání $publish = [‚0‘ =>‚Není skladem‘, ‚1‘ ⇒ ‚Skladem‘];
- vanaveno
- Člen | 144
Ahojte,
řeším takový nejspíše banální problém. Mám vytvořený filtrační
zařízení, v databázi rozdělený jako 0 nepublikovaný 1 publikovaný.
Když vyberu 1 vyfiltrují se mi produkty, které jsou publikované, ale když
vyberu 0 vyberou se mi obojí, kde dělám chybu.
$publish = [‚0‘ =>‚Není skladem‘, ‚1‘ ⇒ ‚Skladem‘];
//ukázka část funkce
public function Search($publish = NULL, …)
tabulka v databázi publish tinyint(1)
Díky za pomoc
Editoval vanaveno (4. 3. 2020 17:18)
- vanaveno
- Člen | 144
Taky mně to napadlo, že se 0 překládá na null, ve funkci mám $publish = null, filtrační zařízení je nastaveno, tak že tam mám více hodnot, jak $text = null, $category = null, protože občas vyberu jen například kategorii, někdy kategorii a publikování a ve filtraci mám podmínky if($text){…} if($category){…} if($publish) {…}.
Felix napsal(a):
Moc to podle popisku nepoznam, ale nepreklada se ti 0 na neco jineho? Treba na false nebo null? Jenom hadam, potreboval bych vetsi popisek. Napr. jaka verze Nette, jaka DB, kod z modelove tridy.
Editoval vanaveno (4. 3. 2020 17:38)
- vanaveno
- Člen | 144
<?php
//Category Filter
public function CategoryFilter($supId= NULL, $published = NULL)
{
// ZDE MI TO HODÍ 0
bdump($published);
$selection = $this->getCategories();
if($supId)
{
$selection = $selection->where('supId2', $supId);
$this->supId = $supId;
}
if($published)
{
// ZDE UŽ MI NIC BDUMP NEUKAZUJE
bdump($published);
$selection = $selection->where('published', $published);
$this->published = $published;
}
return $selection;
}
?>
- David Matějka
- Moderator | 6445
no ten if($published)
se pro hodnotu 0 vyhodnoti jako false.
asi to chces kontrolovat, ze to neni null
pomoci if($published !== null)
- CZechBoY
- Člen | 3608
Doporučuju si přečíst https://www.php.net/…parisons.php a potom doporučuju
v podmínkách používat vždy jen booleany (např.
$published !== null
, count($abc) > 0
, atd.).
Editoval CZechBoY (5. 3. 2020 19:32)