Formdan gönderilen ürünleri birden fazla ürünü veritabanına post etmeye çalıştığımda sadece en son eklnen ürünü post ediyor bu konuda yardımcı olabilicek olan var mı
<form id="salesForm" action="islemler.php" method="POST">
<div class="mb-3">
<label class="form-label" for="tarih">Tarih</label>
<input class="form-control" id="tarih" name="tarih" type="date" value="<?php echo date('Y-m-d'); ?>" required />
</div>
<div class="mb-3">
<label class="form-label" for="musteri">Müşteri</label>
<select class="form-select js-choice" id="musteri" size="1" name="musteri" data-options='{"removeItemButton":true,"placeholder":true}'>
<option value="">Müşteri Seçiniz</option>
<?php
$query = "SELECT MUSTERIAD FROM musteriler";
$stmt = $db->prepare($query);
$stmt->execute();
$customers = $stmt->fetchAll(PDO::FETCH_COLUMN);
foreach ($customers as $customer) {
echo "<option value='$customer'>$customer</option>";
}
?>
</select>
</div>
<input class="form-control" type="text" id="barkodArama" placeholder="Barkod ara">
<div class="mb-3">
<label class="form-label" for="urun_adi">Barkod Numarası</label>
<select class="form-select" size="1"data-options='{"removeItemButton":true,"placeholder":true}' id="barkod" size="1" name="barkod" >
<option value="">Barkod Seçiniz</option>
<?php
$query = "SELECT BARKOD, PNAME, PRICE FROM urunler";
$stmt = $db->prepare($query);
$stmt->execute();
$products = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($products as $product) {
echo "<option value='{$product['BARKOD']}' data-price='{$product['PRICE']}' data-pname='{$product['PNAME']}'>{$product['BARKOD']}</option>";
}
?>
</select>
</div>
<div id="tableExample3" data-list='{"valueNames":["name","email","age"],"page":5,"pagination":true}'>
<div class="row justify-content-end g-0">
<div class="col-auto col-sm-5 mb-3">
</div>
</div>
<button type="button" class="btn btn-primary" id="addProduct">Ürün Ekle</button>
<div class="table-responsive scrollbar">
<table class="table table-bordered table-striped fs--1 mb-0">
<thead class="bg-200 text-900">
<tr>
<th>Ürün Barkodu</th>
<th>Ürün Adı</th>
<th>Birim Fiyat</th>
<th>Adet</th>
<th>Toplam Fiyat</th>
</tr>
</thead>
<tbody id="satislar">
<!-- Seçilen ürünlerin burada listeleneceği satırlar burada dinamik olarak oluşturulacak -->
</tbody>
</table>
</div>
</div>
<div class="mb-3">
<label class="form-label" for="adet">Ödeme</label>
<input class="form-control" id="odeme" name="odeme" type="number" placeholder="Ödeme alındı ise yazınız." required />
</div>
<div class="mb-3">
<label class="form-label" for="adet">Açıklama</label>
<input class="form-control" id="aciklama" name="aciklama" type="text" placeholder="Açıklamanız var ise yazın." required />
</div>
<div class="mb-3">
<label class="form-label" for="adet">Makbuz No</label>
<input class="form-control" id="makbuzno" name="makbuzno" type="text" placeholder="Satışta makbuz kesildi ise yazın." required />
</div>
<div class="mb-3">
<label class="form-label" for="pazarlamaci">Pazarlamacı</label>
<select class="form-select js-choice" id="pazarlamaci" size="1" name="pazarlamaci" data-options='{"removeItemButton":true,"placeholder":true}'>
<option value="">Pazarlamacı Seçiniz</option>
<?php
// Kullanıcılar tablosundan role değeri 2 olanları çekerek seçenekleri doldurun
$query = "SELECT namesurname FROM users WHERE role = 2";
$stmt = $db->prepare($query);
$stmt->execute();
$pazarlamacilar = $stmt->fetchAll(PDO::FETCH_COLUMN);
foreach ($pazarlamacilar as $pazarlamaci) {
echo "<option value='$pazarlamaci'>$pazarlamaci</option>";
}
?>
</select>
</div>
<button class="btn btn-primary" type="submit" name="yeni_satis_ekle">Yeni Satış Ekle</button>
</form>
<script>
document.addEventListener('DOMContentLoaded', function () {
const addProductButton = document.getElementById('addProduct');
const productSelect = document.getElementById('barkod');
const salesTableBody = document.querySelector('#satislar');
addProductButton.addEventListener('click', function () {
const selectedProducts = productSelect.selectedOptions;
for (const selectedProduct of selectedProducts) {
const barkod = selectedProduct.value;
const productName = selectedProduct.getAttribute('data-pname');
const productPrice = parseFloat(selectedProduct.getAttribute('data-price'));
const newRow = document.createElement('tr');
newRow.innerHTML = `
<td>${barkod}</td>
<td>${productName}</td>
<td>${productPrice.toFixed(2)}</td>
<td><input type="number" name="quantity[]" value="0" min="0"></td>
<td>0.00</td>
<td><button type="button" class="removeProduct btn btn-danger">Kaldır</button></td>
`;
salesTableBody.appendChild(newRow);
}
});
salesTableBody.addEventListener('input', function (e) {
if (e.target.name === 'quantity[]') {
const quantityInput = e.target;
const priceCell = quantityInput.parentElement.previousElementSibling;
const totalCell = quantityInput.parentElement.nextElementSibling;
const price = parseFloat(priceCell.textContent);
const quantity = parseInt(quantityInput.value);
if (!isNaN(price) && !isNaN(quantity)) {
const total = price * quantity;
totalCell.textContent = total.toFixed(2);
}
}
});
salesTableBody.addEventListener('click', function (e) {
if (e.target.classList.contains('removeProduct')) {
const rowToRemove = e.target.closest('tr');
rowToRemove.remove();
}
});
});
</script> if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["yeni_satis_ekle"])) {
$tarih = $_POST['tarih'];
$musteri = $_POST['musteri'];
$pazarlamaci = $_POST['pazarlamaci'];
// Seçilen ürünleri işleyin ve satış tablosuna ekleyin
if (isset($_POST['barkod']) && isset($_POST['quantity'])) {
$barkodlar = $_POST['barkod'];
$adetler = $_POST['quantity']; // Adet bilgisini de al
// Her bir ürün için işlemleri yapın ve veritabanına ekleyin
for ($i = 0; $i < count($barkodlar); $i++) {
$barkod = $barkodlar[$i];
$adet = $adetler[$i]; // Adet bilgisini al
// Ürün bilgilerini veritabanından al
$queryUrun = "SELECT BARKOD, PNAME, PRICE FROM urunler WHERE BARKOD = :barkod";
$stmtUrun = $db->prepare($queryUrun);
$stmtUrun->bindParam(':barkod', $barkod, PDO::PARAM_STR);
$stmtUrun->execute();
$urun = $stmtUrun->fetch(PDO::FETCH_ASSOC);
$urunBarkod = $urun['BARKOD'];
$urunAdi = $urun['PNAME'];
$birimFiyat = $urun['PRICE'];
// Satışı veritabanına ekleyin
$queryEkle = "INSERT INTO satislar (TARIH, BARKOD, PNAME, ADET, BIRIMFIYAT, MUSTERI, Pazarlamaci)
VALUES (:tarih, :barkod, :urunAdi, :adet, :birimFiyat, :musteri, :pazarlamaci)";
$stmtEkle = $db->prepare($queryEkle);
$stmtEkle->bindParam(':tarih', $tarih, PDO::PARAM_STR);
$stmtEkle->bindParam(':barkod', $urunBarkod, PDO::PARAM_STR);
$stmtEkle->bindParam(':urunAdi', $urunAdi, PDO::PARAM_STR);
$stmtEkle->bindParam(':adet', $adet, PDO::PARAM_INT);
$stmtEkle->bindParam(':birimFiyat', $birimFiyat, PDO::PARAM_STR);
$stmtEkle->bindParam(':musteri', $musteri, PDO::PARAM_STR);
$stmtEkle->bindParam(':pazarlamaci', $pazarlamaci, PDO::PARAM_STR);
if ($stmtEkle->execute()) {
// Başarılı
} else {
$_SESSION["error_message"] = "Satış eklenirken hata oluştu: " . $stmtEkle->errorInfo()[2];
}
}
$_SESSION["success_message"] = "Satış başarıyla eklendi.";
}
// İşlem tamamlandıktan sonra bir sayfaya yönlendirme yapabilirsiniz
header("Location: yeni-satis.php");
exit;
} else {
echo "Bu sayfa sadece POST ile erişilebilir.";
}