Eğer yeni başladıysanız yolun başındayken sınıf kullanımlarını biraz değiştirin.

- Öncelikle bir tane "veritabani" isimli sınıf oluşturun. Bu sınıf içerisinde PDO objesini örnekleyip, $db isimli bir değişkene objeyi atayın.
- Daha sonra "veritabani" isimli sınıftan "stok" isimli yeni bir sınıfı extend edin (veritabanı sınıfının özelliklerinin stok isimli sınıf tarafından miras alınmasını sağlayın)
- "Stok" sınıfı içerisindeki metotların hiç birinde html kullanmayın. Eğer veritabanından veri sorguladığınız zaman sonuç dönmüyorsa false, dönüyorsa dizi değişken olarak verilerin dönmesini sağlayın.
- Html ile ilişkili kısımları ise sınıfı kullanacağınız yerde yapın.

<?php

class Veritabani {

    protected $db;
    public function __construct() {
        try {
            $this->db = new PDO("mysql:host=localhost;dbname=stoktakip;charset=utf8", "root","123456");
            $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
        catch(PDOException $e)
        {
            die($e->getMessage());
        }
    }

}

class Stok extends Veritabani{

    public function __construct() {
        parent::__construct();
    }
    public function kategori_ust() {
        $sql = "select * from kategori";
        $sorgu = $this->db->prepare($sql);
        $sorgu->execute();
        return $sorgu->rowCount() > 0 ? $sorgu->fetchAll(PDO::FETCH_ASSOC) : false;
    }

    public function tum_urunler() {
        $sql = "select * from urunler";
        $sorgu = $this->db->prepare($sql);
        $sorgu->execute();
        return $sorgu->rowCount() > 0 ? $sorgu->fetchAll(PDO::FETCH_ASSOC) : false;
    }

    public function urunleri_cek($kategori) {
        $sql = "select * from urunler where katid = ?";
        $sorgu = $this->db->prepare($sql);
        $sorgu->execute(array($kategori));
        return $sorgu->rowCount() > 0 ? $sorgu->fetchAll(PDO::FETCH_ASSOC) : false;
    }

}