Merhabalar,
Bir php scriptte ana kategori ürünlerini ve alt kategori ürünlerini aynı sayfada çekmek istiyorum. Uzun denemeler sonucunda başarıya ulaşamadım.

Veritabanı yapısı bu şekilde;
CREATE TABLE `urun_kategori_lokma` (
`id` int(11) NOT NULL,
`adi` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`sira` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`resim` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`kategori` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`onaciklama` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`durum` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`aciklama` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`seo` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`tur` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`eklenme_tarihi` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`guncelleme_tarihi` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`adi_en` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`aciklama_en` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`onaciklama_en` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`seo_en` text CHARACTER SET utf8 COLLATE utf8_turkish_ci,
`icon` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Veritabanı içeriği de bu şekilde;
INSERT INTO `urun_kategori_lokma` (`id`, `adi`, `sira`, `resim`, `kategori`, `onaciklama`, `durum`, `aciklama`, `seo`, `tur`, `eklenme_tarihi`, `guncelleme_tarihi`, `adi_en`, `aciklama_en`, `onaciklama_en`, `seo_en`, `icon`) VALUES
(1, 'Lokma', '1', 'resim-yok', '0', '', 'on', '', 'lokma', 'urun_kategori_lokma', '29.10.2024', NULL, NULL, NULL, NULL, '', NULL),
(2, 'Bubble', '2', 'resim-yok', '0', '', 'on', '', 'bubble', 'urun_kategori_lokma', '29.10.2024', NULL, NULL, NULL, NULL, '', NULL),
(3, 'Regnum', '3', 'resim-yok', '0', '', 'on', '', 'regnum', 'urun_kategori_lokma', '29.10.2024', NULL, NULL, NULL, NULL, '', NULL),
(4, 'İçecekler', '4', 'resim-yok', '0', '', 'on', '', 'icecekler', 'urun_kategori_lokma', '29.10.2024', NULL, NULL, NULL, NULL, '', NULL),
(5, 'Süslemeler', '5', 'resim-yok', '0', '', 'on', '', 'suslemeler', 'urun_kategori_lokma', '29.10.2024', NULL, NULL, NULL, NULL, '', NULL),
(6, 'İç Dolgu', '6', 'resim-yok', '5', '', 'on', '', 'ic-dolgu', 'urun_kategori_lokma', '29.10.2024', NULL, NULL, NULL, NULL, '', NULL);
İç Dolgu haricindeki diğer kategoriler ana kategori, İç Dolgu kategorisi Süslemeler kategorisinin alt kategorisi şeklinde. Ana kategorilerin kategori sütunu değerini 0 yaparak, alt kategorinin değerini de ana kategorinin id değeri yaparak belirliyoruz.
Php kodlarımız da aşağıdaki gibi;
<div class="main category">
<div class="container">
<h5 class="page-subtitle text-center"><?=$adi?></h5><br/>
<div class="row">
<?php
if (strstr($_SERVER["SCRIPT_URL"], "kategori")) {
// Ana kategorileri çekelim
$anaKategoriler = $db->query("SELECT * FROM urun_kategori_lokma WHERE kategori='0' ORDER BY sira ASC")->fetchAll(PDO::FETCH_ASSOC);
foreach ($anaKategoriler as $anaKategori) {
echo "<h3>" . $anaKategori["adi"] . "</h3>"; // Ana kategori başlığı
// Alt kategorileri ve ana kategoriyi birleştirerek ürünleri çekmeyi deniyorum.
$kategoriID = $anaKategori['id'];
$urunler = $db->query("SELECT * FROM urunler_lokma WHERE kategori='$kategoriID' OR kategori IN (SELECT id FROM urun_kategori_lokma WHERE kategori='$kategoriID') ORDER BY sira ASC")->fetchAll(PDO::FETCH_ASSOC);
foreach ($urunler as $goster) {
?>
<div class="col-6 col-lg-3 col-sm-4 col-md-3">
<a title="<?=$goster["adi"]?>" href="<?=$goster["seo"]?>">
<div class="product box-shadow">
<div class="medium-img image" data-src="resimler/<?=$goster["resim"]?>">
<img class="blur" title="<?=$goster["adi"]?>" alt="<?=$goster["adi"]?>" src="resimler/<?=$logo?>">
</div>
<div class="detail">
<span class="name"><?=$goster["adi"]?></span>
<span class="price"><?=$goster["fiyat"]?> <i class='fa fa-try'></i></span>
</div>
</div>
</a>
</div>
<?php
}
}
} else {
$cek = $db->query("SELECT * FROM urunler_lokma WHERE kategori='$id' ORDER BY sira ASC")->fetchAll(PDO::FETCH_ASSOC);
foreach ($cek as $goster) {
?>
<div class="col-12 col-md-3">
<div class="card border-0 shadow-light text-center mb-4">
<div class="card-body position-relative">
<div class="h-300 position-relative overflow-hidden">
<div class="background background-h-300">
<img src="resimler/<?=$goster["resim"]?>" alt="">
</div>
</div>
<a title="<?=$goster["adi"]?>" href="<?=$goster["seo"]?>">
<h4 class="text-default"><?=$goster["adi"]?></h4>
</a>
<div class="row">
<div class="col text-center">
<p class="text-success my-0"><?=$goster["fiyat"]?></p>
</div>
</div>
</div>
</div>
</div>
<?php
}
}
?>
</div>
</div>
</div>Ekrana Ana Kategori başlığı altında ana kategori ürünlerini, alt kategori başlığı altına da alt kategori ürünlerini bastırmak istiyorum. Desteğinizi rica ederim.