很抱歉标题很难理解,但这里什么都没有:
我的用户表上有两种用户,trainee
&coach
。Trainee
可以添加一个coach
,并且coach
将看到trainee
将在数据库上创建的内容。
这很简单,如果coach
只能有1trainee
,那么只需将trainee
的用户id存储在一个名为iscoachof
的列中。但是,多个用户必须能够添加coach,因此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();
所以,基本上,可以将它存储在一个数组中,在以后提取值时保存到数据库中吗?
最佳答案
干得好:
创建另一个表,例如coach_to_trainee
coach_id INTEGER
trainee_id INTEGER
两者都是主键。
然后,您可以简单地添加一对新的couch-id用粗体字回答你的问题:是的,这是可能的。
编辑:创建表的SQL:
CREATE TABLE `coach_to_trainee` (
`coach_id` INTEGER NOT NULL,
`trainee_id` INTEGER NOT NULL,
PRIMARY KEY (`coach_id`, `trainee_id`)
)