【发布时间】:2013-01-24 11:43:36
【问题描述】:
抱歉标题难以理解,但这里什么都没有:
我的用户表中有两种用户,trainee 和 coach。
Trainee 可以添加一个coach,coach 会看到trainee 在数据库上创建的东西。
这很简单,如果coach 只能有1 个trainee,只需将trainee 的用户ID 存储在名为iscoachof 的列中。然而,多个用户必须能够添加教练,因此iscoachof 可能包含比一个更多的用户 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();
所以基本上,是否可以将其存储在一个数组中,然后将其保存到数据库中以便稍后提取值?
【问题讨论】:
-
肯定存在错误的数据库结构。在教练和实习生之间应该有一对多的关系......在这种情况下,我会添加一个关系表,为每个实习生映射一张沙发......这样您就可以添加/更新/删除关系。