PHP新手但学到了很多东西。我相信使用JOIN命令的相对简单的问题。在我的代码中......
这将获取并打印出当前会话用户:
$userId = $_SESSION['user_id'];
echo $userId;
但是user_id只是我的成员表中的一个数字,因此会打印出“3”或其他一些数字。在相同的成员表中,有一个名为'username'的列,其中3(id列)与'Brad'(用户名列)相关联。
使用echo命令打印Brad会是什么?我试过像
这样的东西$actualname = mysqli_query($con,"SELECT members.username JOIN members on userid=members.id");
echo $actualname;
我对join命令的功能还没有很好的理解,任何帮助都会很棒!
答案 0 :(得分:4)
您错过了FROM
:
$result = mysqli_query($con,"SELECT members.username FROM members WHERE userid= $userId");
此处无需JOIN
。
现在显示名称:
while ($row = mysqli_fetch_assoc($result)) {
echo $row['username'];
}
/* free result set */
mysqli_free_result($result);
答案 1 :(得分:3)
您不需要JOIN,因为数据在相同的关系行记录和表中可用。
你需要
SELECT `username` FROM `members` WHERE `userid` = 3
假设Brad的userId是3。
答案 2 :(得分:1)
您已经说明的问题不是JOIN
,而是非法形成的SELECT
语法。
我对join命令的功能还没有很好的理解,任何帮助都会很棒!
对于初学者,这里是MySQL SELECT语法的manual link,它也显示了如何使用JOIN。
仅当您需要根据关联数据加入两个或多个表时,才会使用JOIN
语句。例如。如果您有另一个名为addresses的表,并且它有一个与成员user_id相关的列,那么您可以 JOIN 这些表一起获取每个用户的所有地址。 JOIN的示例代码:
SELECT
members.*,
addresses.*
FROM
members
JOIN addresses ON
members.user_id=addresses.members_user_id
WHERE
user_id='3'
有关更多示例,请参阅左,右,内,外工作等不同的JOINS如何看待此article explaing sql joins