【问题标题】:PHP / MYSQL Echo using the join commandPHP/MYSQL Echo 使用 join 命令
【发布时间】:2013-10-18 12:38:10
【问题描述】:

php 新手,但学到了很多东西。我认为使用 JOIN 命令的相对简单的问题。在我的代码中...

这获取并打印出当前会话用户:

$userId = $_SESSION['user_id'];
echo $userId;

但 user_id 只是我的成员表中的一个数字,因此会打印出“3”或类似的数字。在同一个成员表中,有一个名为“用户名”的列,其中 3(id 列)与“Brad”(用户名列)相关联。

echo 命令是什么让它打印 Brad?我尝试了类似的东西

$actualname = mysqli_query($con,"SELECT members.username JOIN members on userid=members.id"); 

echo $actualname;

我对 join 命令的功能还不是很了解,任何帮助都会很棒!

【问题讨论】:

  • 您在查询语句中缺少 FROM 子句。你能用你的表的名称和结构更新你的问题吗?

标签: php mysql sql select join


【解决方案1】:

您缺少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);

【讨论】:

  • 完美运行!非常感谢。我把加入的必要性与我不久前尝试过的其他事情混淆了。非常感谢!
  • @slycat 请在下面查看我的回答,以了解有关联接是什么以及它们如何工作的更多信息,这样下次就不会混淆了。
【解决方案2】:

您不需要 JOIN,因为数据在同一个关系行记录和表中可用。

你需要

SELECT `username` FROM `members` WHERE `userid` = 3

假设 Brad 的 userId 是 3。

【讨论】:

    【解决方案3】:

    如前所述,您的问题不是JOIN,而是非法形成的SELECT 语法。

    我对 join 命令的功能还不是很了解,任何帮助都会很棒!

    对于初学者,这里是 MySQL SELECT 语法的 manual link,它还展示了如何使用 JOIN。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多