v2.5.2
Giriş yap

Php çoklu veri kaydında array olarak kaydetme problemi

yazilimyolcusu
616 defa görüntülendi

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.

<?php
if (isset($_POST['formbir'])) {
    $aliciadisoyadi   = $_POST['aliciadisoyadi'];
    $alicifirma       = $_POST['alicifirma'];
    $Sehir            = $_POST['Sehir'];
    $aliciilce        = $_POST['aliciilce'];
    $alicieposta      = $_POST['alicieposta'];
    $siparisnotlari   = $_POST['siparisnotlari'];
    $urununstokkodu   = $_POST['urununstokkodu'];
    $urununstoksayisi = $_POST['urununstoksayisi'];
    $sorgulistele = $db->query("SELECT * FROM sepeteeklenenurunler");
  
  if($sorgulistele) {
    $say = $sorgulistele->rowCount();
    if($say > 0) {

      $sayi = 0;
      while($sayi < $say) {

    $siparisitamamla = $db->query("INSERT INTO sepetonaylanan 
    (sepetonaylanan_adisoyadi, sepetonaylanan_firmaadi, sepetonaylanan_sehiradi,
      sepetonaylanan_ilcesemt, sepetonaylanan_eposta,
      sepetonaylanan_siparisnotlari, sepetonaylanan_urun_stokkodu,
      sepetonaylanan_urun_stoksayisi) 
      VALUES ('$_POST[aliciadisoyadi][$sayi]',
      '$_POST[alicifirma][$sayi]', '$_POST[Sehir][$sayi]', '$_POST[aliciilce][$sayi]', 
      '$_POST[alicieposta][$sayi]', 
      '$_POST[siparisnotlari][$sayi]', '$_POST[urununstokkodu][$sayi]', 
      '$_POST[urununstoksayisi][$sayi]')");
      $sayi++;
      }
      if($siparisitamamla) {
        echo "tamam";
      } else {
        echo "olmadı";
      }
    }
    }
  }
  
  ?>

https://resimyukle.org/i/c2j15

yazilimyolcusu
910 gün önce

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

<form action="tamamlanansiparisler.php" method="POST">

<div class="alici-kisiselbilgiler-div">


<div class="alici-adi-soyadi-yazisi">
Adı - Soyadı
</div>
<div class="alici-adi-soyadi-input">
<input type="text" name="aliciadisoyadi[]" />
</div>


<div class="firma-adi-yazisi">
Firma
</div>
<div class="firma-adi-input">
<input type="text" name="alicifirma[]" />
</div>


<div class="sehir-adi-yazisi">
Şehir
</div>
<div class="sehir-adi-input">
<select name="sehir[]">
<option value="0">Şehir Seçiniz</option>
<option value="1">Adana</option>
<option value="2">Adıyaman</option>
<option value="3">Afyonkarahisar</option>
<option value="4">Ağrı</option>
<option value="5">Amasya</option>
<option value="6">Ankara</option>
<option value="7">Antalya</option>
<option value="8">Artvin</option>
<option value="9">Aydın</option>
<option value="10">Balıkesir</option>
<option value="11">Bilecik</option>
<option value="12">Bingöl</option>
<option value="13">Bitlis</option>
<option value="14">Bolu</option>
<option value="15">Burdur</option>
<option value="16">Bursa</option>
<option value="17">Çanakkale</option>
<option value="18">Çankırı</option>
<option value="19">Çorum</option>
<option value="20">Denizli</option>
<option value="21">Diyarbakır</option>
<option value="22">Edirne</option>
<option value="23">Elazığ</option>
<option value="24">Erzincan</option>
<option value="25">Erzurum</option>
<option value="26">Eskişehir</option>
<option value="27">Gaziantep</option>
<option value="28">Giresun</option>
<option value="29">Gümüşhane</option>
<option value="30">Hakkâri</option>
<option value="31">Hatay</option>
<option value="32">Isparta</option>
<option value="33">Mersin</option>
<option value="34">İstanbul</option>
<option value="35">İzmir</option>
<option value="36">Kars</option>
<option value="37">Kastamonu</option>
<option value="38">Kayseri</option>
<option value="39">Kırklareli</option>
<option value="40">Kırşehir</option>
<option value="41">Kocaeli</option>
<option value="42">Konya</option>
<option value="43">Kütahya</option>
<option value="44">Malatya</option>
<option value="45">Manisa</option>
<option value="46">Kahramanmaraş</option>
<option value="47">Mardin</option>
<option value="48">Muğla</option>
<option value="49">Muş</option>
<option value="50">Nevşehir</option>
<option value="51">Niğde</option>
<option value="52">Ordu</option>
<option value="53">Rize</option>
<option value="54">Sakarya</option>
<option value="55">Samsun</option>
<option value="56">Siirt</option>
<option value="57">Sinop</option>
<option value="58">Sivas</option>
<option value="59">Tekirdağ</option>
<option value="60">Tokat</option>
<option value="61">Trabzon</option>
<option value="62">Tunceli</option>
<option value="63">Şanlıurfa</option>
<option value="64">Uşak</option>
<option value="65">Van</option>
<option value="66">Yozgat</option>
<option value="67">Zonguldak</option>
<option value="68">Aksaray</option>
<option value="69">Bayburt</option>
<option value="70">Karaman</option>
<option value="71">Kırıkkale</option>
<option value="72">Batman</option>
<option value="73">Şırnak</option>
<option value="74">Bartın</option>
<option value="75">Ardahan</option>
<option value="76">Iğdır</option>
<option value="77">Yalova</option>
<option value="78">Karabük</option>
<option value="79">Kilis</option>
<option value="80">Osmaniye</option>
<option value="81">Düzce</option>
</select>
</div>


<div class="ilce-adi-yazisi">
İlçe / Semt: *
</div>
<div class="ilce-adi-input">
<input type="text" name="aliciilce[]" />
</div>


<div class="eposta-yazisi">
E-Posta Adresi: *
</div>
<div class="eposta-input">
<input type="text" name="alicieposta[]" />
</div>


<div class="siparisnotlari-yazisi">
Şiparişiniz İle İlgili Not Bırakabilirsiniz
</div>
<div class="siparisnotlari-textarea">
<textarea name="siparisnotlari[]"></textarea>
</div>


<?php
$sepeturunlerigoster = $db->query("SELECT * FROM sepeteeklenenurunler");
while ($urunekle = $sepeturunlerigoster->fetch()) {
?>

<div class="sepetionayla-fiyatgosterimi-div">

<div class="sepetimurunleri-sayfasi-stokkodu">Stok Kodu:
<?php echo $urunekle['urun_stokkodu']; ?>
<input type="text" name="urununstokkodu[]" value="<?php echo $urunekle['urun_stokkodu']; ?>" />
</div>

<div class="sepetimurunleri-sayfasi-stoksayisi">Stok Adedi:
<?php echo $urunekle['urun_stoksayisi']; ?>
<input type="text" name="urununstoksayisi[]" value="<?php echo $urunekle['urun_stoksayisi']; ?>" />
</div>

</div>

<?php } ?>


</div>

<div class="siparisitamamla">
<input type="submit" value="Siparişi Tamamla" />
</div>

</form>