public function all($take, $skip, $category) { if ($category) { $showAllProducts = UserModel::isAdminUser($_SESSION['id']) ? "" : "AND p.quantity > 0"; $result = $this->db->prepare("SELECT p.id, p.name, p.quantity FROM products p\n INNER JOIN products_categories pc\n ON p.id = pc.product_id\n WHERE pc.category_id = (SELECT id FROM categories WHERE name = ?) {$showAllProducts}\n LIMIT ? OFFSET ?"); $result->execute([$category, $take, $skip]); return $this->prepareViewModel($result->fetchAll()); } else { $showAllProducts = UserModel::isAdminUser($_SESSION['id']) ? "" : "WHERE quantity > 0"; $result = $this->db->prepare("SELECT id, name, quantity, price FROM products {$showAllProducts} LIMIT ? OFFSET ?"); $result->execute([$take, $skip]); return $this->prepareViewModel($result->fetchAll()); } }