Php çoklu veri kaydında array olarak kaydetme problemi
Merhabalar. Şu kodlarda ufak bir problem var. Aşağıdaki kodlar ile çoklu veri kaydı yapmak istediğimde aşağıdaki resimde olduğu gibi kayıt yapıyor. Verileri kayıt edemiyorum, doğru bir şekilde. İki ürünü kayıt edebiliyorum ama "array[0]" gibi kayıt yapıyor. Resme bakabilirsiniz.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
Tekrar Merhaba.
Cevabından şunu anladım. Umarım doğru anlamışımdır.
Stok kodu farklıysa bu ürünler ayrı ayrı satırlara kaydedilsin ancak sipariş veren kişi aynı ve temel bilgileri aynı.
Eğer istediğin buysa aşağıdaki kodu hazırladım.
Not:
- Kodda eğer bir ürün seçilmişse bir ürün kaydediyor. Daha fazla seçiliyse seçli olanlar kaydediliyor.
- Şehir isimleri Sayı olarak kaydediliyor kendine göre düzenlersin.
- Soruna gelecek olursak bence urunler, uyeler ve uye_siparisleri diye bir tablo olmalı. uye_siparisler tablosunda üye_id'si ve üye'nin sipariş ettiği ürün_id'si tutulmalı. Mysql sorgusunda Inner Joın kullanarak üyenin sipariş ettiği ürünlere daha kolay ulaşabilirsin diye düşünüyorum. Bu konuda tecrübeli arkadaşlar daha fazla yardımcı olabilir.
kablosuzkedi'nin Youtube kanalında "Alışveriş Sepeti" ile ilgili bir eğitim serisi var. Bakmak isterseniz:
kablosuzkedi - PHP ile Alışveriş Sepeti Yapımı
index.php
tamamlanansiparisler.php
Kodlar çalışıyor ama tek satır kayıt yapıyor. Benim istediğimin örneğini elle hazırladım resmi aşağıda. yani tek post ile iki satır ürün; sepette üç ürün varsa üç satır ürün kayıt edecek. Yani resimde, müşteriye ait olan: eposta, şehir, ilçe vs. bilgiler aynı ama ürün özellikleri farklı. İlk satırdaki ürünün stok kodu "7"; ikinci ürünün stok kodu 8 farkettiyseniz. Eğer 5 ürün varsa sepetimde, ben form'u post ettiğimde o 5 ürün 5 satırda kayıt olacak. Daha doğrusu ben size şöyle bir akıl danışayım. Şimdi ben ürünleri tek tek kayıt etmezsem, müşterinin ne ürün aldığını, özelliklerini, hangi kullanıcının ne aldığını nasıl kayıt edebilirim. Aklıma bu geliyor. Acaba form kısmında mı bir hata yapıyorum. Kodları aşağıya koyuyorum.
https://www.hizliresim.com/hmxhavj
Merhaba.
Aşağıdaki kod bende istediğiniz gibi çalışıyor.
Not: Aşağıdaki tablo sütun isimlerini burada taşma yaptığından dolayı kısa yazdım.
tablo
id (int) | adisoyadi (varchar) | eposta (varchar) | firmaadi (varchar) | sehiradi (varchar) | ilcesemt (varchar) | stokkodu (varchar) | urun_stoksayisi (varchar) | siparisnotlari (varchar) |
---|---|---|---|---|---|---|---|---|
1 | Ahmet | ahmet@localhost.com | A Firması A.Ş | İstanbul | Fatih | 5 | 20 | Ürün Açıklamasıdır |
2 | Ahmet | ahmet@localhost.com | A Firması A.Ş | İstanbul | Fatih | 9 | 30 | Ürün Açıklamasıdır |
index.php
sipariskaydet.php
Kayıt ekleniyor. Stokkodu alanı ve stokkodusayısı "1" olarak ekleniyor. Yalnız eklemek istediğim ürün 1'den fazla yani 2 tane ürünü aynı anda kaydetmek istiyorum. yani şu şekilde olması gerekli. Kaydet butonuna bastığımda, sepetteki bu iki ürün kayıt edilecek.
İsim Firma Şehir İlçe E-Posta Stokkodu - Stok Sayısı
Ahmet - Ahmet a.ş - İstanbul - Falanca İlçe - ahmetinpostası@ahmetinpostasi.coom - 5 - 20
Ahmet - Ahmet a.ş - İstanbul - Falanca İlçe - ahmetinpostası@ahmetinpostasi.coom - 9 - 30
Bir de şöyle bir hata alıyorum 7-8 satırdan.
PHP Notice: Undefined offset: 1 in