v2.5.2
Giriş yap

JSON encode yardım

m100
720 defa görüntülendi

Merhaba array içindeki verileri json_encode ile formatlarken çıktı alıyorum fakat o çıktıyı veri tabanına kayıt ettiremiyorum veritabanındaki alan türüm json şöyle bir şeyi fark ettim json encode yaparken array içinde url gibi parametlereler mevcut örnek olarak

{"3":{"u_id":"3","u_ismi":"asdas","u_degerlendirme":"0","u_images":"../products/280572029154.jpg","u_aromaid":null,"u_ozellikler":"kasjdkasj","u_aciklama":"
ksjhcasjkhasjk</p>rn","u_fiyat":"12","u_fiyat_alm":"32","u_indirim":null,"u_kategori":"1","u_stokkodu":"as","u_stok":"2","u_satis":null,"u_sergi":"0","u_ctarih":"09/01/2021 08:53","u_dtarih":null,"u_daciklama":null,"u_status":"1","u_ismi_alm":"asjkdhasdjk","u_ozellikler_alm":"askjdhaskjdas","u_aciklama_alm":"

aksjdhajksdhajkd</p>rn","u_kargo":"1","shopier_link":"https://www.codecrew.cc","count":1,"para_birimi":"u20ba","fiyat":"12","toplam":12,"kargo":10},"2":{"u_id":"2","u_ismi":"denmee","u_degerlendirme":"0","u_images":"../products/240162029154.jpg","u_aromaid":null,"u_ozellikler":"deneme","u_aciklama":"

deneme</p>rn","u_fiyat":"12","u_fiyat_alm":"21","u_indirim":null,"u_kategori":"1","u_stokkodu":"DX2345","u_stok":"2","u_satis":null,"u_sergi":"1","u_ctarih":"04/01/2021 10:30","u_dtarih":"04/01/2021 10:31","u_daciklama":null,"u_status":"1","u_ismi_alm":"deneme","u_ozellikler_alm":"deneme","u_aciklama_alm":"

deneme</p>rn","u_kargo":"1","shopier_link":"https://www.codecrew.cc","count":1,"para_birimi":"u20ba","fiyat":"12","toplam":12,"kargo":10}}

çıktı olarak bu tür bir çıktı oluşuyor ve "/" gibi şeyler görüyorum çıktıda veri tabanına alıp direk alana koymak istersemde aynı şekilde hata olarak onları gösteriyor
bunları nasıl düzeltebilirim yardım eder misiniz?

EDİT: kendi sayfamda utf-8 var fakat burda mesela o karakterleri saymıyor kendi sitemde onlar çıktıya ekleniyor

Cevap yaz
Cevaplar (7)
m100
1403 gün önce

Güncel sorunum devam ediyor çözemedim yardımcı olur musunuz @tayfunerbilen

m100
1404 gün önce

genel olarak kontrollerim ve veritabanına insert etme işlemleri alttaki gibi bir hata bulamadım belki gözden kaçırdığım birşey vardır

 if(!$_SESSION['login']) {
        header("Location: ".site_url());
    }else {
         $data=array();
         $i=0;
         $kid = $_SESSION['au_id'];
         $_POST = array_map(function($post){
            return htmlspecialchars($post);
        }, $_POST);

 
         $products = json_encode($_SESSION['shoppingCart'] ['products']);
 
         $summary = json_encode($_SESSION['shoppingCart'] ['summary']);
 
         $total = $_SESSION['shoppingCart'] ['summary'] ['total'];
 
         $siparis_tarihi = date("Y-m-d H:i");

        
 
         if($_POST['sp_adsoyad'] == "" || $_POST['sp_eposta'] == "" || $_POST['sp_tel'] == "" || $_POST['sp_il'] == "" || $_POST['sp_ilce'] == "" || $_POST['sp_postakodu'] == "" || $_POST['sp_adres'] == "" || $_POST['sp_sartlar'] == "") {
             header("Location: ".site_url('cart?respone=null'));
             exit;
         } elseif(!filter_var($_POST['sp_eposta'], FILTER_VALIDATE_EMAIL)) {
             header("Location: ".site_url('cart?response=email'));
             exit;
         }elseif(strlen($_POST['sp_adres']) < 10) {
             header("Location: ".site_url('cart?response=adres'));
             exit;
 
         }else {
            if($_POST['sp_sartlar'] == "on") {
                $sor=$db->prepare("INSERT INTO siparisler SET
                sp_adsoyad=:adsoyad,
                sp_products=:products,
                sp_summary=:summary,
                sp_tarih=:tarih,
                sp_tutar=:tutar,
                sp_eposta=:eposta,
                sp_tel=:tel,
                sp_il=:il,
                sp_ilce=:ilce,
                sp_postakodu=:postakodu,
                sp_adres=:adres

                ");
                $ins = $sor->execute(array(
                    'adsoyad' => $_POST['sp_adsoyad'],
                    'products' => $products,
                    'summary' => $summary,
                    'tarih' => $siparis_tarihi,
                    'tutar' => $total,
                    'eposta' => $_POST['sp_eposta'],
                    'tel' => $_POST['sp_tel'],
                    'il' => $_POST['sp_il'],
                    'ilce' => $_POST['sp_ilce'],
                    'postakodu' => $_POST['sp_postakodu'],
                    'adres' => $_POST['sp_adres']
                ));
                if($ins) {
                    header('Location: '.site_url('cart?response=access'));
                }else {
                    header('Location: '.site_url('cart?response=denied'));
                }

            }else {
                header("Location: ".site_url('cart?response=sartlar'));
                exit;
            }
         }
 
     
    }
qplot
1404 gün önce

kodlarını paylasırmısın kaydettıgın ve lısteledıgın

m100
1404 gün önce

fakat sıkıntı şu o veriyi o şekilde veritabanı kabul etmiyor kodda hata vardır diye mysqlde denedim direk json çıktısını kabul etmiyor malesef

qplot
1404 gün önce

onlar verı tabanında o sekılde gorunur bakma sen onlara verılerı dokunce normal gorunur

m100
1404 gün önce
$asd = json_encode($veri, JSON_UNESCAPED_SLASHES);

bu şekilde lardan kurtulabildim fakat bu sefer bazı karakterler yerine /r/n gibi yazılar gelmeye başlıyor bunları
str_replace ile kaldırmaya çalıştım fakat hiçbir şey olmadı

qplot
1404 gün önce

vallaha eticaret bölümü yazıyordum siteme hiç aklıma gelmemıstı mysql de json tutmak sayende epey ısıme yarayacak

SORUNU DOĞRU ANLADIYSAM

burda bır makale var ısınede yarayacaktır https://www.digitalocean.com/community/tutorials/working-with-json-in-mysql

he birde json_decode yapıyorsun pekı json_encode yapıyormusun.

burada güzel bir öenek var

UPDATE `e_store`.`products`
SET `attributes` = JSON_INSERT(
    `attributes` ,
    '$.chipset' ,
    'Qualcomm'
)
WHERE
    `category_id` = 2;