Witam
Mam formularz zamówienia w którym chciałbym poprzez checkbox wybrać kilka pozycji i utworzyć z nich wysyłkę.
<form action="wysylka.php" method="post">
<input type=\"checkbox\" name=\"wybrany[]\" value='". $wiersz['id']."'>
<input type=\"hidden\" name=\"nr_zam\" value='". $wiersz['nr_zam']."'>
<input type=\"hidden\" name=\"status\" value='". $wiersz['status']."'>
<input type=\"submit\" value=\" Utwórz wysyłkę z zaznaczonych \">
</form>
Przetwarzam formularz i aktualizuję zarówno tabelę 'zamow' jak i kopiuję dane do drugiej tabeli 'wys' (wiem, że to można zrobić w jednej tabeli,
ale chciałbym spróbować takiego rozwiązania). Problem polega na tym, że mam błąd w kodzie (źle skonstruowaną pętlę?) i część rekordów kopiuje się wielokrotnie.
Jak można tego uniknąć?
<?php session_start();
require_once('db.php');
$nr_zam = mysqli_real_escape_string($con, $_POST['nr_zam']);
$status = mysqli_real_escape_string($con, $_POST['status']);
foreach($_POST['wybrany'] as $wybrany)
{
$id = mysqli_real_escape_string($con,$wybrany);
if($status=="do zrob")
{
$res = mysqli_query($con,"UPDATE `zamow` SET `status`='w realiz' WHERE `id`='$id' ");
$sql = mysqli_query($con, "INSERT INTO `wys` (`data`,`klient`,...) SELECT `data`,`klient`,`...`
FROM `zamow` WHERE (`nr_zam`='$nr_zam') AND (`status`='w realiz')");
echo "<h1>Ok</h1>";
}
else {
// show error
}
}
?>