Tamam baştan yapalım. PDO kullandığınızı varsayıyorum. Umarım öyledir.
SQL sorgumuzu gözden geçirelim. Gelen veriyi fonksiyonla temizleyerek veritabanından bağlı olan veriyi isteyelim.
<?php
$gelen_veri = temizlikYap($_GET["product_head"]); // GET ile gelen veriyi temizleyerek değişkene tanımladık.
$query = $db->prepare('SELECT * FROM table_products WHERE product_head = ? ORDER BY id DESC');
$query->execute(array($gelen_veri));
$veri = $query->fetch(PDO::FETCH_OBJ); //Tablodan bu $gelen_veri ' ye en son id'ye sahip veriyi çektik.
echo = $veri->baslik."<br>";
echo = $veri->icerik;
?>
Tek bir veriyi çektik. Limit vermemize gerek yok. Eğer bütün listeyi taramak ve sadece son eklenen 3 tanesini getirmek isteseydik limit belirlerdik. Bu sefer biraz daha farklı çekelim. prepare ile verileri kontrol ettirelim.
<?php
$gelen_veri = temizlikYap($_GET["product_head"]);
$query = $db->prepare("select * from table_products where product_head =:product_head ORDER BY id DESC LIMIT 3");
$query ->execute(array(
"product_head" => $gelen_veri
));
$veriler = $query->fetchAll(PDO::FETCH_OBJ);
foreach ($veriler as $veri):
echo = $veri->baslik."<br>";
echo = $veri->icerik."<br>";
endforeach;
//Sadece son eklenen 3 tanesini ekranda döndürdük.
?>
Şimdi bunu biraz daha şekillendirelim. product_head verisi bir STRING ifadesi ise sanırım camasir_makinesi diye yolculuk yapıyor.
<?php
if(!empty($_GET['product_head'])) {
$gelen_veri = filter_input(INPUT_GET,"product_head",FILTER_SANITIZE_STRING);
$query = $db->prepare("select * from table_products where product_head =:product_head ORDER BY id DESC LIMIT 3");
$query ->execute(array(
"product_head" => $gelen_veri
));
$veriler = $query->fetchAll(PDO::FETCH_OBJ);
foreach ($veriler as $veri):
echo = $veri->baslik."<br>";
echo = $veri->icerik."<br>";
endforeach;
exit;
} else {
die("GET ile gelen veri yok");
}
?>
SQL sorugusu içerisine fonksiyon tanımlaması yapılmaması gerekiyor. Sorununuz muhtemelen orda. Sorgu çekerken değişken gönderilir. bu değişkene ait verileri ver denilir.