gpt4 book ai didi

php - 在 MySQL 表列上存储多个值并在查询中使用它们?

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

抱歉,标题难以理解,但这里什么都没有:

我的用户表上有两种用户,traineecoach

Trainee 可以添加一个coachcoach 会看到trainee 在数据库中创建的内容。

这会很简单,如果 coach 只能有 1 个 trainee,只需将 trainee 的用户 ID 存储在名为 的列中是教练。但是,多个用户必须能够添加教练,因此 iscoachof 可以包含比一个用户 ID 多得多的用户 ID。像 34,72,345,87,97

因此,这是我当前的代码,它将使用新值更新列 iscoachof

 $fd = $_POST['coach'];
$user = $_SESSION['login']['id'];
$query = "UPDATE users SET iscoachof='$user' WHERE id='$fd'";
$add = $db->prepare($query);
if($add->execute()){
echo "Lisätty";
}
else{
echo "Ei lisätty";
}

它只是覆盖当前值,这不是一个选项。

所以,我需要做一些类似的事情

$currentval =  "SELECT iscoachof FROM users WHERE id='$fd';
$do = $db->prepare($currentval);
$do->execute();
while($row = $do->fetchObject()){
$currentval = $row->iscoachof;
}

要在更新之前获取当前值,但我应该如何存储它以便稍后在类似这样的查询中使用它来代替 $data

$q = "SELECT * FROM diaries WHERE UserID='$data' AND date='$today'";
$do = $db->prepare($q);
$do->execute();

所以基本上,是否可以将它存储在一个数组中,然后将其保存到数据库中以供稍后提取值?

最佳答案

我建议您再次查看您的数据库设计。最好有一个单独的表来存储教练和受训者之间的关系。这样您就可以在需要时从表中添加/删除。

$fd = $_POST['coach'];
$user = $_SESSION['login']['id'];
$query = "INSERT into coaches SET coach='$fd', user=$user";
$add = $db->prepare($query);
if($add->execute()){
echo "Lisätty";
}
else{
echo "Ei lisätty";
}

但是要小心传入的 POST 变量,否则您将面临 SQL 注入(inject)。

关于php - 在 MySQL 表列上存储多个值并在查询中使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14500565/

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