Merhaba hocam,
şimdi yapmış olduğunuz sistemde iki kere tablodan foreach işlemine bırakıyorsunuz. Buda mysql servisini ağırlaştırır.

Düzenlemiş olduğum kodu deneyebilir misin ?









// Gelen html taglarını veya script taglarını hepsini siliyorum ve boşlukları siliyorum
if (isset($_GET["kategori"])) {
$kategoriName = strip_tags(trim($_GET["kategori"]));
/*
$post = $db->query("SELECT * FROM urunler");
foreach($post as $rows){
$explode = explode(",",$rows["urunkate"]);

Kodları kaldırdım.
*/
// $NewSql = $db->prepare("SELECT * FROM urunler WHERE urunkate LIKE ?");
$NewSql = $db->prepare("SELECT * FROM urunler WHERE FIND_IN_SET(?,urunkate)");
$NewSql->execute(array("%" . $kategoriName . "%"));
$xx = $NewSql->fetch();
foreach ($NewSql as $rv) {
?>

}

}
?>