PHP / mysql,使用外键从另一个表中获取数据

时间:2012-05-07 15:48:28

标签: php mysql

我有两个表,一个名为posts,另一个名为users。在posts里面我有几列,一列是userid的外键。在我的users表中,我有几列,包括useridusername。我想使用posts.userid查找users.userid并显示users.username。目前我正在使用:

SELECT posts.postid, posts.title, posts.text, posts.link, posts.good, posts.bad, posts.userid
FROM posts

获取有关每个帖子的数据,

SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid

获取有关每个用户的数据,但是当我这样做时,echo $row_therealuserid['username'];的输出始终只是第一个用户。

2 个答案:

答案 0 :(得分:7)

您需要使用array to fetch the other rows,然后遍历该数组。

$query = 'SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid';

$result = mysql_query($query) or die(mysql_error());


while($row = mysql_fetch_array($result)){
    echo $row['username'];
    echo "<br />";
}

答案 1 :(得分:0)

对于返回结果集的SELECT和其他语句,mysql_query()在成功时返回资源,如果出错则返回FALSE。

资源是一个特殊变量,包含对外部资源的引用。资源由特殊函数创建和使用,它可以由不同的函数创建和使用许多类型。

对于mysql_query(),返回的类型是一个资源是“ mysql result ”,它将由mysql_fetch_array();

使用

我将再举一个例子,对于函数mysql_connect(),它返回一个资源类型“ mysql link ”,它可以被函数mysql_query()

使用