gpt4 book ai didi

php - foreach 循环获取和处理表​​单数据的问题

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

我有一个表单,用户可以填写个人资料信息,所有表单字段都是可选的(不是必需的)。

我的问题是我试图遍历所有表单字段以及任何空的表单字段分配值 NULL,对于非空的表单字段分配用户在表单中输入的内容。

我认为 foreach 会更容易并且意味着更干净的代码,而不是多个 if 语句,但是 foreach 循环中的 foreach 和 if 语句导致了我的问题,我不知道如何解决。

我没有包含所有代码,因为我认为我的问题不需要它。

// fetch form data
$formdata = filter_input_array(INPUT_POST);

// assign session to variables
$user_uid = $_SESSION['user_uid'];
$user_login = $_SESSION['user_login'];

foreach ($formdata as $data){
if (empty($data)) {
$formdata = NULL;
}
}

$url = $formdata['url'];
$facebook = $formdata['facebook'];
$twitter = $formdata['twitter'];
$instagram = $formdata['instagram'];
$youtube = $formdata['youtube'];

// connect to database
$dbh = sql_con();

// process to db
$stmt = $dbh->prepare('
UPDATE
users_profiles
INNER JOIN
users
ON
users_profiles.user_uid = users.user_uid
SET
user_url = :user_url,
user_facebook = :user_facebook,
user_twitter = :user_twitter,
user_instagram = :user_instagram,
user_youtube = :user_youtube
WHERE
users_profiles.user_uid = :user_uid
AND
users.user_login = :user_login
');

// execute query
$stmt->execute(
array(
':user_url' => $url,
':user_facebook' => $facebook,
':user_twitter' => $twitter,
':user_instagram' => $instagram,
':user_youtube' => $youtube,
':user_uid' => $user_uid,
':user_login' => $user_login
));

如果我提交表单而不填写任何表单字段,用户的数据库条目将根据我的需要更新为 NULL,但如果我填写某些或任何表单字段并提交我在表单中提供的信息,仍然在数据库中显示 NULL 并执行不更新用户在表单中输入的内容。

我希望未填写的表单字段被分配值 NULL,而已填写的字段被分配用户在表单中输入的内容,然后在数据库中更新。

感谢您的帮助。

最佳答案

$formdata = NULL;

您不想将整个 $formdata 数组设置为 NULL,而只想将当前条目设置为 NULL:

foreach ($formdata as $key => $data) {
if (empty($data)) {
$formdata[$key] = NULL;
}
}

关于php - foreach 循环获取和处理表​​单数据的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56886431/

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