MYSQL veritabanıma json_encode formatında veriyi sütuna kaydettim fakat bu veriyi ayrıntılı olarak sorgulayamıyorum. Nasıl yapılır çok uğraştım kaynaklarda yetmedi. Bir bakar mısınız?
MYSQL Sütunda olan veri :
[{"attribute":"Renk","value":"Kırmızı","price":10.9 9,"stock":5},
{"attribute":"Renk","value":"Mavi","price":12.99," stock":3},
{"attribute":"Renk","value":"Yeşil","price":8.99," stock":2},
{"attribute":"Renk","value":"Turuncu","price":9.99 ,"stock":4}]
HTML Kısmı
<form action="al.php" method="post"> <?php echo $attribute; ?> : <select name="varyasyon_baslik" > <?php foreach ($variations as $variation): ?> <option value="Kırmızı"> <?php echo $variation['value'] . ' - ' . $variation['price'] . ' TL' . ' Adet ' . $variation['stock']; ?> </option> <?php endforeach; ?> </select> <input type="submit"> </form>PHP Sorgu kodum : Arkadaşlar sütünda Kırmızı Renk var mı diye karşılaştırsın istiyorum Ama Aşağıdaki kodum hep yokkk diyor. SÜTUN daki değeri taramıyor nasıl yapılabilir. Çok uğraştım en son burada sizlere sormak istedim.
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $selectedVariationValue = $_POST['varyasyon_baslik']; try { $query = "SELECT varyasyon_ic_baslik FROM urun_varyasyon WHERE JSON_CONTAINS(varyasyon_baslik, :varyasyon_baslik)"; $stmt = $db->prepare($query); $stmt->execute([':varyasyon_baslik' => json_encode(['value' => $selectedVariationValue])]); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($results) { echo "Seçilen varyasyon veritabanında bulunuyor."; foreach ($results as $row) { $data = json_decode($row['varyasyon_baslik'], true); echo "Renk: " . $data['value'] . "<br>"; echo "Fiyat: " . $data['price'] . "<br>"; echo "Stok: " . $data['stock'] . "<br>"; echo "<hr>"; } } else { echo "Seçilen varyasyon veritabanında yok."; } } catch (PDOException $e) { die("Bağlantı hatası: " . $e->getMessage()); } } ?>
