Arkadaşlar merhabalar;
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());
}
}
?>