v2.5.2
Giriş yap

Veritabanıma JSON veri kaydetmem gerek.

avancee
415 defa görüntülendi

Yaşadığım sorunu şöyle anlatabilirim:

Services[] diye bir kısımda checkboxlarimda neler secildiyse onlari aliyorum ve
json ile veritabanına yazdırmam gerekiyor fakat veritabanında ['kablonet','kablonet2'] olarak yazıyor fakat olması gereken {'title' => 'kablonet', 'title' => 'kablonet2'} gibi olmasını istiyorum.

Kaynak kodlarımın hepsi aşağıda.

public static function joinReference(): void
    {
        global $dbh;

        if(isset($_POST['Apply'])){
            $fullName = htmlspecialchars($_POST['username']);
            $phone = htmlspecialchars($_POST['phone']);
            $services =  json_encode($_POST['services']);
            $city = htmlspecialchars($_POST['city']);
            $state = htmlspecialchars($_POST['state']);
            $address = htmlspecialchars($_POST['address']);
            $message = htmlspecialchars($_POST['message']);
            $campaign = htmlspecialchars($_POST['campaign']);

            $join = $dbh->prepare('INSERT INTO turksat_references SET 
                                   full_name   = :name,
                                   phone       = :p,
                                   services_id = :sid,
                                   city        = :city,
                                   state       = :state,
                                   address     = :address,
                                   message     = :message,
                                   campaign_id = :cid');
            $join->execute([
                'name'      => $fullName,
                'p'         => $phone,
                'sid'       => $services,
                'city'      => $city,
                'state'     => $state,
                'address'   => $address,
                'message'   => $message,
                'cid'       => $campaign
            ]);
        }
    }

<label class="form-label fw-bold">Tercih Ettiğiniz Hizmetler</label>
                            <div class="form-check">
                                <input class="form-check-input" type="checkbox" name="services[]" value="kablonet" id="1">
                                <label class="form-check-label" for="1">
                                    Kablonet
                                </label>
                            </div>
                            <div class="form-check">
                                <input class="form-check-input" type="checkbox" name="services[]" value="kablonet2" id="2">
                                <label class="form-check-label" for="2">
                                    Kablonet2
                                </label>
                            </div>

Note : HTML için sadece ilgili kısmı koydum yoksa post v.s sorunsuz çalışıyor

Veritabanıma kaydedilen veri : https://imgyukle.com/i/RsjAFU

Cevap yaz
Cevaplar (2)
mubado
724 gün önce

indis olmadığından kaynaklı o yine json decode yaparak kullanabilirsin o json array değil

gokcin
728 gün önce

Bütün verilemi kaydetmek istiyorsun yoksa sadece bir sütün'daki verilerimi.

Örnek:

    json_encode(['website'=>'prototurk.com']);

bu şekilde koyarsan veriyi json olarak kayıt edecektir.