您好我一直在寻找我当前问题的网站。我正在一个你有多个选择的页面上工作,所有选择的信息都必须存储在一个Sql数据库中,但是多选中的每一个必须在它自己的行上,而其他参数保持最新。
<form action="OpretRen.php" method="POST">
<select name="area">
<option value="Christiansminde">Christiansminde</option>
<option value="Boulevarden">Boulevarden</option>
</select>
<select name="rum[]" multiple="multiple">
<option value="Værelse 3">Værelse 3</option>
<option value="Værelse 5">Værelse 5</option>
<option value="Værelse 7">Værelse 7</option>
<option value="Værelse 9">Værelse 9</option>
<option value="Værelse 11">Værelse 11</option>
<option value="Værelse 13">Værelse 13</option>
<option value="Værelse 15">Værelse 15</option>
<option value="Værelse 17">Værelse 17</option>
</select>
<input type="date" name="dato">
<input type="hidden" name="ren" value="">
<input type="checkbox" name="ren" value="Skal rydes op"> Skal Rengøres <br>
<input type="submit" name="opret">
</form>
例如你应该能够选择“Boulevarden”多个房间的位置“værelse3,værelse11”一个日期,它应该在数据库1行创建2行“værelse3”和一个værelse11位置和日期保持不变。
这是我的php
$Area = $_POST['area'];
$Rum = $_POST['rum'];
$Dato = $_POST['dato'];
$ren = $_POST['ren'];
// indsætter information til databasen
$sql = "INSERT INTO `oprydning`(`Bygning`, `Rum`, `Dato`, `Rent`) VALUES ('{$Area}','{$Rum}','{$Dato}','{$ren}')";
我尝试了在谷歌和网上发现的各种解决方案,但没有任何效果,如果有人知道这可能如何工作,请帮助:)
答案 0 :(得分:0)
如果您创建var_dump($_POST);
,您会注意到多选在$_POST['rum']
中创建了一个数组,其中包含每个选择的键。
如果您创建PHP代码以循环执行此操作,则可以添加多行,而其余行保持不变。
<?php
$Area = $_POST['area'];
$Dato = $_POST['dato'];
$ren = $_POST['ren'];
$lastKey = key( array_slice( $_POST['rum'], -1, 1, TRUE ) );
$sql = "INSERT INTO `oprydning`(`Bygning`, `Rum`, `Dato`, `Rent`) VALUES ";
foreach($_POST['rum'] as $k=>$Rum){
$sql .= "('{$Area}','{$Rum}','{$Dato}','{$ren}')";
if($k !== $lastKey){
$sql .= ',';
}
}
// Run $sql
但是,我建议您阅读一些最佳实践和教程。
答案 1 :(得分:0)
试试这个:
foreach ($Rum as $item) {
$sql = "INSERT INTO `oprydning`(`Bygning`, `Rum`, `Dato`, `Rent`) VALUES ('{$Area}','{$item}','{$Dato}','{$ren}')";
//insert $sql in db
}
这将为您的$ Rum数组中的每个值在您的db中创建一条新记录,如您所愿。