如何在phpMyAdmin中填充数据库的多个表

时间:2013-12-18 22:01:01

标签: php mysql sql database phpmyadmin

我正在尝试建立一个允许会员注册的网站。我有一个包含多个表的数据库。简化它如下所示:

用户有两列:“ID”和“用户名”,其中“ID”是主键。

消息有两列:“ID”和“消息”,其中“ID”是引用用户的外键。

UserRank 也包含多个列,其中包含一个“ID”,它也是用户的外键。

还有更多的表使用相同的“ID”来识别用户/成员。

我使用MySQL将数据从网页发送并存储到数据库,如下所示:

$sqlQuery = "INSERT INTO users (Username) VALUES 
('$username')";
$result=mysql_query($sqlQuery);

用户会按照应有的方式填写,但消息 UserRank 的“ID”字段仍为空。我想相应地填写它们,即对于用户中的每个用户(由于它是主键都具有唯一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);

我知道这是一个奇怪的结构,但我必须尝试一些。请指出我在正确的方向。

2 个答案:

答案 0 :(得分:2)

你正在以错误的方式构建事物。你需要在线获得一些Conceptual Data Model课程才能建立一个结构良好的数据库,因为你缺少很多字段,而且最重要的是你错过了外键

答案 1 :(得分:1)

PHP语法看起来运行正常,但您的SQL查询很可能失败。这主要是由于您的外键分配和数据库结构。

但是,我建议您在使用mysql_error();

进行测试后查询
$sqlQuery = "INSERT INTO users (Username) VALUES ('".$username."')";
$result=mysql_query($sqlQuery) or die(mysql_error());

它应停止并为您提供更多信息,说明您未达到预期效果的原因。