gpt4 book ai didi

php - 如何在 mysql php 中更新多选下拉数组

转载 作者:行者123 更新时间:2023-11-29 11:46:58 24 4
gpt4 key购买 nike

我在我的项目中使用多选下拉菜单。现在我想更新 mysql 数据库中的多选下拉数组值。我成功在数据库中添加了多选值,但是当我尝试更新时,我得到了错误的结果。例如,如果数组中的值类似于 Array([0]=>A [1]=>B) 并且我运行循环来更新数据库中的值,则更新后的值始终为第二个值数组(例如[1]=>B)。我不知道问题出在哪里请帮忙..下面是我的代码..

HTML

<select name="countries[]" id="countries" multiple="multiple" placeholder="Which countries did you sell your products in *" required>
<option value="" disabled="disabled" selected>Which countries did you sell your products in *</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option>
<option value="American Samoa">American Samoa</option>
<option value="Andorra">Andorra</option>
<option value="Angola">Angola</option>
<option value="Anguilla">Anguilla</option>

PHP

$countries = $_POST['countries'];
$user_id = $_SESSION['user_session'];
$size=sizeof($countries);
for($i=0;$i<$size;){
$count = $trade_info->update_supplier_last_financial_count($user_id, $countries[$i]);
$i++;
}

函数 (update_supplier_last_financial)

public function update_supplier_last_financial_count($user_id,$last_count){

$db = db::getInstance();
$pdo = $db->getConnection();

try {
$stmt = $pdo->prepare("UPDATE supplier_last_financial_countries SET countries = :last_count WHERE user_id = :user_id ");

$stmt->bindparam(":user_id", $user_id);
$stmt->bindparam(":last_count", $last_count);

$stmt->execute();

return $stmt;
}

catch(PDOException $e) {
echo $e->getMessage();
}

}

提前致谢..

最佳答案

您的查询正在一遍又一遍地更新同一行。它受到 WHERE 的限制,但 WHERE ($user_id) 的条件永远不会改变。

像这样的东西可能会起作用:

$countries = $_POST['countries'];
$user_id = $_SESSION['user_session'];
foreach ($countries as $country) {
$count = $trade_info->update_supplier_last_financial_count($user_id, $country);
}

public function update_supplier_last_financial_count($user_id,$last_count) {
$db = db::getInstance();
$pdo = $db->getConnection();

try {
$stmt = $pdo->prepare("DELETE FROM supplier_last_financial_countries WHERE user_id = :user_id ");
$stmt->bindparam(":user_id", $user_id);
$stmt->execute();

$stmt = $pdo->prepare("INSERT INTO supplier_last_financial_countries SET countries = :last_count, user_id = :user_id ");
$stmt->bindparam(":user_id", $user_id);
$stmt->bindparam(":last_count", $last_count);
$stmt->execute();

return $stmt;
} catch(PDOException $e) {
echo $e->getMessage();
}
}

关于php - 如何在 mysql php 中更新多选下拉数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758827/

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