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.
<?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ı";
}
}
}
}
?>
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 | [email protected] | A Firması A.Ş | İstanbul | Fatih | 5 | 20 | Ürün Açıklamasıdır |
2 | Ahmet | [email protected] | A Firması A.Ş | İstanbul | Fatih | 9 | 30 | Ü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";
}
}
}
}