query-6ren">
gpt4 book ai didi

PHP 提交输入 Foreach() ID

转载 作者:行者123 更新时间:2023-11-29 21:00:03 25 4
gpt4 key购买 nike

我正在尝试提交一个包含每个用户 ID 的时间表的表单。到目前为止,它看起来像这样:

$sql = "SELECT * FROM dbtable";
$result = $conn->query($sql);
$name_info = "SELECT udidId, name FROM udid";
$name_result = $conn->query($name_info);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$udidId = $row["udidId"];
echo "<label for='hours' class='schedule'><strong>I want <span>".$row["name"]."</span>";
echo "<input type='text' name='udidId' class='hidden' value='".$row["udidId"]."' />";
echo " to be <br />allowed out between <input type='text' name='outAllowedStartHour' placeholder='8' value='" . $row["outAllowedStartHour"] . "'> - <input type='text' name='outAllowedEndHour' placeholder='8' value='" . $row["outAllowedEndHour"] . "'><br />allowed in between <div class='padd_left'></div><input type='text' name='inAllowedStartHour' placeholder='8' value='" . $row["inAllowedStartHour"] . "'> - <input type='text' name='inAllowedEndHour' placeholder='8' value='" . $row["inAllowedEndHour"] . "'></strong></label>";
}
}


if(isset($_POST["update_schedule"])) {
foreach($_POST as $key => $value) {
echo "POST parameter '$key' has '$value' <br />";
while($row = $result->fetch_assoc()) {
foreach($value as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
$update_pets = "UPDATE v_spottData SET $x_value = $x_value WHERE udidId = $x";
$conn->execute($update_pets);
}
}
}

但是,仅更新数据库中最后一个 ID 的输入,而根本不更新输入值。有什么建议吗?

最佳答案

  1. 执行执行查询,它执行准备好的语句。您需要使用prepare来准备查询。
  2. 准备好的语句应使用占位符。引用/转义将由驱动程序处理。
  3. 注意列不能被绑定(bind)/占位。
  4. 您当前的查询正在尝试更新具有相同值的列,这是错误的。将下面的 $updating_column 更改为您尝试更新的任何列。
<小时/>
$columns = array('outAllowedStartHour', 'outAllowedEndHour', 'inAllowedStartHour', 'inAllowedEndHour'); // whitelist columns
if(in_array($updating_column, $columns)) {
$update_pets = "UPDATE v_spottData SET `$updating_column` = ? WHERE udidId = ?";
$stmt = $con->prepare($update_pets);
$stmt->bind_param("ii", $x_value, $x);
$stmt->execute();
} else {
echo 'Using a Not Allowed Column';
}

您可以在此处阅读有关准备好的语句的更多信息,http://php.net/manual/en/mysqli.quickstart.prepared-statements.php .

关于PHP 提交输入 Foreach() ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37312666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com