当我从php发送帖子以将输入值保存在单独的行中时,我以ma表结尾始终存储了多余的空白行。 例如,这是我发送帖子以保存值的表格:
SELECT * FROM `18-3-2019` WHERE `COL 13` < `COL 14`
这是我接收数据并将其插入db的地方,它插入了所有按顺序排列的产品,但它也节省了额外的空行。
<table class="table table-bordered" id="data">
<tr>
<th width="40%">Knjiga</th>
<th width="40%">Pisac</th>
<th width="5%">Radnja</th>
</tr>
<?php
if(isset($_COOKIE["spisak_knjiga"]))
{
$cookie_data = stripslashes($_COOKIE['spisak_knjiga']);
$knjiga_podaci = json_decode($cookie_data, true);
foreach($knjiga_podaci as $keys => $values)
{
$skola= $values["skola"];
$inv_id= $values["inv_id"];
$sql = "SELECT knjige.id_knjige, knjige.naziv_knjige, knjige.pisac, knjige.mjesto_izdanja, knjige.godina_izdanja, knjige.signatura, knjige.inv_broj,knjige.kategorija, knjige_kategorija.naziv_kategorije, skole.ime_skole FROM knjige INNER JOIN skole ON knjige.skola = skole.id_skole INNER JOIN knjige_kategorija ON knjige.kategorija = knjige_kategorija.id_kat WHERE id_skole ='$skola' AND inv_broj = '$inv_id'";
mysqli_query($db, $sql);
foreach ($db->query($sql) as $row){
$idKnjige = $row['id_knjige'];
?>
<tr>
<td><?php echo $row['naziv_knjige'] ?></td>
<td><?php echo $row['pisac'] ?></td>
</tr>
<tr>
<input type="hidden" name="ucenik[]" value="<?php echo $idUcenika; ?>">
<input type="hidden" name="knjiga[]" value="<?php echo $idKnjige; ?>">
<input type="hidden" name="skola[]" value="<?php echo $skola; ?>">
</tr>
<?php
}
}
$broj = mysqli_num_rows(mysqli_query($db, $sql));
$db->close();
?>
<?php }
} ?>
</table>
<input type="submit" name="zaduziUcenika" class="btn btn-primary btn-lg btn-block" value="Save orders">
</form>
答案 0 :(得分:1)
由于$_POST
数组中除了要插入表中的值之外还有其他值,因此您在foreach
循环中迭代了太多次。更改循环以遍历您拥有多个副本的值之一,例如ucenik
:
foreach ($_POST['ucenik'] as $i => $val) {
$idUcenika = $_POST['ucenik'][$i];
$idKnjige = $_POST['knjiga'][$i];
$idSkole = $_POST["skola"][$i];
请注意,您需要从代码中删除$i = 0;
和$i++;
行。