v2.5.2
Giriş yap

PHP Class içinde GET Parametresini Sorgu İçinde Kullanamıyorum

desperado
411 defa görüntülendi

php de class içerisinde get ile aldığım bir parametreyi pdo sorgusu içerisinde kullanamıyorum.

sorgu dışında echo, print, print_r, var_dump ile get ile gelen değeri gösteriyor. ama sorgu içerisine eklediğim zaman sonuç alamıyorum.

Kullandığım değişken $this->ProductID

class kategoiler {
	public $ProductID;
    function __construct()
    {
        $this->ProductID = isset($_GET['test']) ? $_GET['test'] : null;
    }
	function liste()
	{
		global $db;
		$query = $db->prepare("SELECT * FROM tbl_Products WHERE inCatalog = ?");
		$query->execute(
		array(
			 $this->ProductID
		));
		$result = $query->fetchAll(PDO::FETCH_OBJ);
		return $result;
	}
}

$a = new kategoiler();
print_r($a->liste());

Cevap yaz
Cevaplar (3)
coder
1147 gün önce

Class ismi ve method ismi olarak çağırabilirsiniz. Ancak fonksiyon ve değişkenin static olması gerekiyor. Kodu inceleyin.

Çağırma örneği.
kategoriler::liste();

<?php
include("baglan.php");

class kategoriler {

    public static $ProductID;

    public function __construct()
    {
       self::$ProductID = isset($_GET['test']) ? $_GET['test'] : null;
    }

    public static function liste()
    {
        global $db;
        $query = $db->prepare("SELECT * FROM kategoriler WHERE kategori_id = ?");
        $query->execute(
        array(
            self::$ProductID
        ));
        $result = $query->fetchAll(PDO::FETCH_OBJ);
        return $result;
    }
}

$kategori = new kategoriler();

$sonuc = kategoriler::liste();

foreach($sonuc as $b){
    echo $b->kategori_baslik;
};
desperado
1147 gün önce

peki bu classı

$a->liste() şeklinde değil de $a::liste() şeklinde kullanabilir miyiz?

coder
1148 gün önce

Merhaba.

Ben denedim, çalışıyor.
Bağlantı dosyanızı projenize dahil ettiniz mi?

İnputa ketegori ID'sini yazıp gönderdiğimde ID'ye göre değeri çekebiliyorum.

<form action="kategoriler.php" method="GET">
    <input type="text" name="test">
    <button type="submit">Gönder</button>
</form>
<?php
include("baglan.php");

class kategoriler {
    public $ProductID;

    function __construct()
    {
        $this->ProductID = isset($_GET['test']) ? $_GET['test'] : null;
    }
    
    function liste()
    {
        global $db;
        $query = $db->prepare("SELECT * FROM kategoriler WHERE kategori_id = ?");
        $query->execute(
        array(
            $this->ProductID
        ));
        $result = $query->fetchAll(PDO::FETCH_OBJ);
        return $result;
    }
}

$a = new kategoriler();
//print_r($a->liste());

foreach($a->liste() as $b){
    echo $b->kategori_baslik;
};