使用join命令的PHP / MYSQL Echo

时间:2013-10-10 16:16:36

标签: php mysql sql select join

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命令的功能还没有很好的理解,任何帮助都会很棒!

3 个答案:

答案 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