Как вывести все товары из выбранной категории на странице?

44
12 июля 2018, 10:50

возникла проблема с выводом товаров из категорий( в выпадающем меню), категории отображаются, но не знаю,как правильно сделать так, чтобы в sql запрос подставлялся id при выборе нужной категории и выводились соответствующие ей товары(пытаюсь делать по паттерну MVC).

Запрос для категорий CategoryModel.php

class CategoryModel extends Model {

public  static function Get_Category (){
    $conn=DB::connToDB();
    $stmt=$conn->prepare("SELECT id, name FROM categories");
    $result = array();
    $stmt ->execute();
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $result[$row['id']]=$row['name'];
    }
    return $result;
}
}

Запрос для товаров ProductModel.php

 class ProductModel extends Model
  {
  public function products($idcat)
  {

    $stmt = $this->db->prepare("SELECT id, name,price,description  FROM 
    products WHERE category_id = ?");
    $stmt->execute([$idcat]);
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}

ProductController.php

 require_once (MODEL_PATH ."/CategoryModel.php");
 class ProductController extends Controller
 {
private $pageTpl = "/Views/templates/product.tpl.php";
   public function __construct()
  {
    $this->model=new ProductModel();
    $this->view= new View();
   }
    public function index(){
    $this->pageData['title']="Украшения";
    $category=CategoryModel::Get_Category();
    $this->pageData['category'] = $category;
    $idcat=$category['id'];
    $this->pageData['products']=$this->model->products($idcat);
    $this->view->render($this->pageTpl,$this->pageData);
    }
}

И на всякий кусок обрабатывающий категории:

  <div class="dropdown-menu " aria-labelledby="navbarDropdownMenuLink">
  <?php foreach ($pageData['category'] as $key =>$value): ?>
  <a class="dropdown-item" href = "/product?<?= $key?>" >
  <?=$pageData['category'][$key]?></a >
     <?php endforeach; ?>
      </div >
READ ALSO
Полнотекстовый поиск на сайте

Полнотекстовый поиск на сайте

Как сделать полнотекстовый поиск и с использованием сокращенных словНапример, don't, didn't, you're и т

22
Phpstorm, generate getters &amp; setters

Phpstorm, generate getters & setters

Подскажите, почему phpstorm может не создать геттеры и сеттеры? Вот код:

63
Как вывести результат из массива? php

Как вывести результат из массива? php

Нужно вывести максимальные размер изображений

69
ORM, Symfony 4, SQL Запрос

ORM, Symfony 4, SQL Запрос

Объясните пожалуйста, как правильно сделать, мне необходимо получить результат следующего запроса:

53