0

我正在从我的数据库中提取两个数组。其中一个来自friends桌子,另一个来自members桌子。

我想做的是在个人资料上显示朋友的用户名。已经完成了,但现在我正在尝试与拥有该用户名的个人资料的人建立链接(单击 userName 以转到 userName 的个人资料)。朋友数组 ($friendsarr) 包含所有朋友的 ID,用户名数组 ($friendunamearr) 包含与 ID 匹配的用户名。但是,它们的顺序不同。

如果我之前忘了提,members 表有一个 ID 字段。这就是我提取所有用户名的方式。

例如,假设有 user1 和 user2。User1 的 ID 是 1。User2 的 ID 是 2。当我点击指向 User1 个人资料的链接时,它会将我带到 User2 的个人资料,反之亦然。

有没有办法将它们按相同的顺序排列?

4

2 回答 2

1

您甚至可以在将这两个表放入数组之前加入它们。那么数据已经为您匹配好了。

http://www.w3schools.com/sql/sql_join.asp

于 2013-06-13T15:32:09.960 回答
0

快速播放,您可以使用以下内容(未经测试)

<?php

error_reporting(E_ERROR | E_PARSE);

$sql = mysql_query("
SELECT members.username, Sub1.FreindIds
FROM members
INNER JOIN (
    SELECT user_id AS FreindIds FROM friends WHERE friend_id=$usrid
    UNION
    SELECT friend_id AS FreindIds FROM friends WHERE user_id=$usrid
) Sub1
ON members.id = Sub1.FreindIds");

$checksql = mysql_num_rows($sql);

while ($row_comp = mysql_fetch_assoc($sql)) 
{
    echo '<a href="../../member/profile?id=' . $row_comp['FreindIds'] . '">' . $row_comp['username'] . '</a><br />';
}

error_reporting(E_ALL);

?>
于 2013-06-13T15:39:38.853 回答