Php 查询朋友表中两个朋友的姓名的简单方法
我有一个朋友表,其中存储了两个朋友的ID。当我查询时,比如说我的朋友,有没有一种简单的方法可以从users表中获取我朋友的名字?我使用PHP和MySQL,表不通过外键连接,但我想我可以使用Navicat连接它们 我的问题是:Php 查询朋友表中两个朋友的姓名的简单方法,php,mysql,foreign-keys,foreign-key-relationship,Php,Mysql,Foreign Keys,Foreign Key Relationship,我有一个朋友表,其中存储了两个朋友的ID。当我查询时,比如说我的朋友,有没有一种简单的方法可以从users表中获取我朋友的名字?我使用PHP和MySQL,表不通过外键连接,但我想我可以使用Navicat连接它们 我的问题是: session_start(); if(isset($_SESSION['valid_user'])) { $currentuser= $_SESSION['valid_user']; } $friendships= mysql_quer
session_start();
if(isset($_SESSION['valid_user']))
{
$currentuser= $_SESSION['valid_user'];
}
$friendships= mysql_query("SELECT * FROM friends WHERE Person1 = '$currentuser' OR Person2 = '$currentuser' ");
while($row = mysql_fetch_assoc($friendsips))
{
if ($row['Person1'] == $currentuser) echo $row['Person2']; // quering the users name from here is hard and long thing to do
if ($row['Person2'] == $currentuser) echo $row['Person1'];
}
friendsfriendshipID,Person1,Person2
usersID、name、姓氏假设表结构为: 用户: 用户名 朋友们: 友谊号,用户号1,用户号2
SELECT name
FROM Friends F JOIN Users U ON (F.userid_2 = U.userid)
WHERE userid_1 = X
编辑:
如果你想得到两个名字,你可以用这个
SELECT
U1.name as name1 , U2.name as name2
FROM
Friends F
JOIN Users U1 ON (F.userid_1 = U1.userid)
JOIN Users U2 ON (F.userid_2 = U2.userid)
WHERE
userid_1 = X
您可以调整where子句来查询任意一个用户ID。只需更改查询并调整join和where子句。好的,我已将其更改为F.userid_2=U.userid和F.userid_1=U.userid,但随后它会显示警告:mysql_fetch_assoc期望参数1是资源,C:\Program Files\EasyHP中给出的布尔值,无输出您应该粘贴查询和查询错误,在phpmyadmin或其他程序中运行查询并查看结果。php错误没有帮助。我更新了答案,现在您可以使用$row['name1']或$row['name2']获取两个用户的姓名