v2.5.2
Giriş yap

PHP de konumu çektirirken kategorisinin yanlış gelme sıkıntısı

ilkertuncer
332 defa görüntülendi

Bir sorguda takıldım.

Amacım o verinin bilgisini ve o verinin kategorisine ait tüm bilgileri tek bir sorguda almak.

Kullanılabilir bir kodum var ama işlev hatalı. Hata, aynı konuyu Bir sorguda takıldım.

Amacım o verinin bilgisini ve o verinin kategorisine ait tüm bilgileri tek bir sorguda almak.

Kullanılabilir bir kodum var ama işlev hatalı. Hata kaç tane kategori varsa o kadar kategori sayısınca aynı veriyi
döndürmek

Benim hatam: https://prnt.sc/OzPLaGHFMGP5

Verilerimi sakladığım tablom: https://prnt.sc/PEqSq2mM5NKM

Kategorilerimi tuttuğum tablom: https://prnt.sc/WK7n8kAGoUWD

verilerimi çekmek için kodum: İşte verilerimi sayfaya çekmek için kodum:

if (!isset($_GET['url']) || boş($_GET['url'])){
    başlık('Konum:404.php');
}

$datas = $db->prepare('SELECT * FROM post WHERE url = ?');
$datas->execute([
    $_GET['url']
]);
$veri = $veri->getir(PDO::FETCH_ASSOC);

if (!$veri){
    başlık('Konum:404.php');
    çıkış;
}

veri kategorisini çektiğim kodum:

<?php $categories = $db->query('Kategorileri SEÇ.*, COUNT(posts.id) as totalCategory FROM kategorileri
LEFT JOIN gönderileri ON FIND_IN_SET(categories.id, posts.category_id)
GROUP BY Category.id DESC')->fetchAll(PDO::FETCH_ASSOC); ?>
<?php foreach ($kategori olarak $kategori): ?>
<div class="konteyner mt-4">
    <div class="row">
        <div class="col-md-12">
            <div class="kart mb-3">
                <div class="kart başlığı">
                    <i class="bi-folder"></i> Kategori: <a href="<?= 'category/' .seo($data['url']) ?>"><?=$category[ ' kategori_adı']?></a>
                    <a class="Date"><?=$data['date']?> <i class="bi-clock"></i></a>
                </div>
                <div class="kart gövdesi">
                    <?=htmlspecialchars_decode($veri['içerik'])?>
                </div>
            </div>
        </div>
    </div>
<?php endforeach; ?>

Peki sorgumda yanlış olan ne, ne önerirsiniz?

codepacks
909 gün önce

Buyur arkadaşım kod yazdım işini görür
iki farklı tablodaki tüm sutunları pdo ile birleştirip verileri yazdırabilirsin php 8 destekler

Sql Tablo

CREATE TABLE `kategori` (
  `kategori_id` int UNSIGNED NOT NULL,
  `kategori_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `kategori_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


INSERT INTO `kategori` (`kategori_id`, `kategori_title`, `kategori_url`) VALUES
(1, 'Eğitim', 'egitim');

CREATE TABLE `post` (
  `post_id` int UNSIGNED NOT NULL,
  `post_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `post_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `post_kategori` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


INSERT INTO `post` (`post_id`, `post_title`, `post_url`, `post_kategori`) VALUES
(1, 'Pdo eğitimi', 'pdo-egitimi', 1);

ALTER TABLE `kategori`
  ADD PRIMARY KEY (`kategori_id`);

ALTER TABLE `post`
  ADD PRIMARY KEY (`post_id`);

ALTER TABLE `kategori`
  MODIFY `kategori_id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

ALTER TABLE `post`
  MODIFY `post_id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
     

Php Pdo iki Farklı Tablodan Sutun verilerini listemele


 $stmt = $pdo->query("SELECT * FROM post INNER JOIN kategori ON post.post_id = kategori.kategori_id LIMIT 0,1");
 while ($row = $stmt->fetch()) {   
 


$row["post_title"] 
$row["post_kategori"];                     
$row["kategori_title"]; 
$row["kategori_url"];