【发布时间】:2013-12-18 22:01:01
【问题描述】:
我正在尝试制作一个允许会员注册的网站。我有一个包含多个表的数据库。简化后如下所示:
Users 有两列:“ID”和“Username”,其中“ID”是主键。
Messages 有两列:“ID”和“Message”,其中“ID”是指 Users 的外键。
UserRank 也有几列,包括一个“ID”,它也是 Users 的外键。
还有更多表使用相同的“ID”来识别用户/成员。
我使用 MySQL 将网页中的数据发送并存储到数据库中,如下所示:
$sqlQuery = "INSERT INTO users (Username) VALUES
('$username')";
$result=mysql_query($sqlQuery);
Users 按原样填写,但 Messages 和 UserRank 的“ID”字段仍为空。我想相应地填写它们,即对于 Users 中的每个用户(由于它是主键,他们都有一个唯一的 ID),其他表中也应该有一条记录。
我尝试用其他查询手动填充它们,但这似乎不起作用:
$idQuery = mysql_query("SELECT ID FROM users WHERE Username='$username'");
$result = mysql_fetch_array( $idQuery );
$ID=$result['ID'];
$query= "INSERT INTO Messages (ID) VALUES ('$ID')";
$result=mysql_query($query);
我知道这是一个奇怪的结构,但我不得不尝试一些东西。请在这里指出正确的方向。
【问题讨论】:
-
你认为用户不需要密码吗?
-
老实说,看起来您的某些表格结构不佳。在该用户发送或获取消息之前,您不会在消息中包含任何行。并且用户排名可能在用户表中。
-
也就是说,在插入用户后使用mysql_insert_id()来获取他们的ID。
-
就像我说的,这是一个简化版本。我遗漏了多个字段,因为它们不相关。
-
@Jessica 别管表名,它们与我的问题无关。我正在尝试在多个表中填写外键“ID”,我的问题仅与此有关。
标签: php mysql sql database phpmyadmin