Я пытаюсь сделать форму редактирования в таблице, и если изменения сделаны, я хочу заменить ее в базе данных. Я использую таблицу ниже.Обновить скрипт установить все строки с тем же значением
<?php
$query = "SELECT * FROM jos_ib_ponude_stavke WHERE BrojPonude = $id";
$q=$conn->query($query);
?>
Первое, что я делаю, это печатать значения в таблице, этот шаг работает нормально.
<form method="post" action="">
<button type="submit" class="btn btn-success" id="submit" name="submit">Snimi</button>
<table class="table table-bordered table-hover">
<thead>
<tr class="bg bg-primary">
<th class="text-center">Opis Radova</th>
<th class="text-center">Jm</th>
<th class="text-center">Kolicina</th>
<th class="text-center">Cijena</th>
<th class="text-center">Rabat</th>
</tr>
</thead>
<tbody>
<tr>
<?php while ($r=$q->fetch()):?>
<td><input type="text" name='opis_edit[]' value="<?php echo $r['OpisRadova']?>" class="form-control"/></td>
<td class="col-md-1"><input type="text" name='jm_edit[]' value="<?php echo $r['Jm'] ?>" class="form-control"/></td>
<td class="col-md-1"><input type="text" name='kolicina_edit[]' value="<?php echo $r['Kolicina'] ?>" class="form-control"/></td>
<td class="col-md-1"><input type="text" name='cijena_edit[]' value="<?php echo $r['Cijena'] ?>" class="form-control"/></td>
<td class="col-md-1"><input type="number" name='rabat_edit[]' value="<?php echo $r['Rbt'] ?>" class="form-control"/></td>
</tr>
<tr></tr>
</tbody>
<?php endwhile; ?>
</table>
</form>
Как только я попал в submit, я получаю все значения в массиве.
$br_ponude = $_GET['Id'];
$opis_post = $_POST['opis_edit'];
$jm_post = $_POST['jm_edit'];
$kolicina_post = $_POST['kolicina_edit'];
$cijena_post = $_POST['cijena_edit'];
$rabat_post = $_POST['rabat_edit'];
$pdv_post = "17,00";
Я получаю все значения, как должен. Проблема возникает в приведенном ниже заявлении.
for ($i=0; $i < sizeof($opis_post) ; $i++)
{
$iznosbpdv = $cijena_post[$i] * $kolicina_post[$i]; // izracunaj iznos bez pdva i bez rabata
if ($rabat_post !=0)
{
$rbt = ($cijena_post[$i] * $kolicina_post[$i]) -
($cijena_post[$i] * $kolicina_post[$i] * $rabat_post[$i] /100);
}
else {
$rbt = 1.00;
}
$query_stavke = $conn->prepare("UPDATE jos_ib_ponude_stavke SET OpisRadova=:opis, Jm=:jm,Kolicina=:kolicina,
Cijena=:cijena, Rbt=:rbt, Pdv=:pdv, IznosBPDV=:iznosbpdv, IznosRbt=:iznosrbt
WHERE BrojPonude = '$br_ponude'");
$query_stavke->bindParam(':opis',$opis_post[$i]);
$query_stavke->bindParam(':jm',$jm_post[$i]);
$query_stavke->bindParam(':kolicina',$kolicina_post[$i]);
$query_stavke->bindParam(':cijena',$cijena_post[$i]);
$query_stavke->bindParam(':rbt',$rabat_post[$i]);
$query_stavke->bindParam(':pdv',$pdv_post);
$query_stavke->bindParam(':iznosbpdv',$iznosbpdv);
$query_stavke->bindParam(':iznosrbt',$rbt);
$query_stavke->execute();
}
После выполнения инструкции все строки в таблице одинаковы. Я использую аналогичный скрипт для вставки, и он отлично работает. Любая помощь или совет оцениваются!
Спасибо так много для помогая – user3651819
, вы можете :-) Я советую вам немного углубиться в то, как работает Object Reference по значению, чтобы понять, почему работает PDO. – Tschallacka