v2.5.2
Giriş yap

Php çoklu veri kaydında array olarak kaydetme problemi

yazilimyolcusu
608 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

coder
882 gün önce

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)
1Ahmet[email protected]A Firması A.ŞİstanbulFatih520Ürün Açıklamasıdır
2Ahmet[email protected]A Firması A.ŞİstanbulFatih930Ürün Açıklamasıdır

index.php

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

	<input type="text" name="aliciadisoyadi[]" placeholder="Alıcı Adı Soyadı">
	<input type="text" name="alicifirma[]" placeholder="Alıcı Firma">
	<input type="text" name="alicieposta[]" placeholder="Alıcı Eposta">
	<input type="text" name="sehir[]" placeholder="Şehir">
	<input type="text" name="aliciilce[]" placeholder="Alıcı İlçe">
	<input type="text" name="urununstokkodu[]" placeholder="Ürün Stok Kodu">
	<input type="text" name="urununstoksayisi[]" placeholder="Ürün Stok Sayısı">
	<input type="text" name="siparisnotlari[]" placeholder="Sipariş Notları"><br><br>

	<input type="text" name="aliciadisoyadi[]" placeholder="Alıcı Adı Soyadı">
	<input type="text" name="alicifirma[]" placeholder="Alıcı Firma">
	<input type="text" name="alicieposta[]" placeholder="Alıcı Eposta">
	<input type="text" name="sehir[]" placeholder="Şehir">
	<input type="text" name="aliciilce[]" placeholder="Alıcı İlçe">
	<input type="text" name="urununstokkodu[]" placeholder="Ürün Stok Kodu">
	<input type="text" name="urununstoksayisi[]" placeholder="Ürün Stok Sayısı">
	<input type="text" name="siparisnotlari[]" placeholder="Sipariş Notları">

	<input type="submit" value="kaydet">

</form>

sipariskaydet.php

if ($_POST){

	$sorgulistele = $db->query("SELECT * FROM sepeteeklenenurunler");

	if($sorgulistele){
		$say = $sorgulistele->rowCount();
		
		if($say > 0) {
			
			$sayi = 0;
			
			while($sayi < $say) {
				$siparisitamamla = $db->prepare('INSERT INTO sepetonaylanan SET 
					sepetonaylanan_adisoyadi		= :adisoyadi,
					sepetonaylanan_firmaadi			= :firmaadi,
					sepetonaylanan_eposta 			= :eposta,
					sepetonaylanan_sehiradi			= :sehiradi,
					sepetonaylanan_ilcesemt			= :ilcesemt,
					sepetonaylanan_urun_stokkodu 	= :stokkodu,
					sepetonaylanan_urun_stoksayisi 	= :stoksayisi,
					sepetonaylanan_siparisnotlari 	= :siparisnotlari'
					
				);
				  
				$siparisitamamla->execute([
					":adisoyadi"	  => $_POST['aliciadisoyadi'][$sayi],
					":firmaadi"		  => $_POST['alicifirma'][$sayi],
					":eposta"		  => $_POST['alicieposta'][$sayi],
					":sehiradi"		  => $_POST['sehir'][$sayi],
					":ilcesemt"		  => $_POST['aliciilce'][$sayi],
					":stokkodu"		  => $_POST['urununstokkodu'][$sayi],
					":stoksayisi"	  => $_POST['urununstoksayisi'][$sayi],
					":siparisnotlari" => $_POST['siparisnotlari'][$sayi]
				]);
				  
				$sayi++;
			}

			if($siparisitamamla){
				echo "İşlem Başarılı";
			}else{
				echo "İşlem Başarısız";
			}
		}
	}
}