从数据库中获取用户ID

Get userID from database

我有一个简单的博客,我正在练习一些 php 和 mysql。我正在尝试显示 post 作者的用户名(你知道它在哪里写着 posted by Author)。 我有两个表 blog_members 和 blog_posts,它们一对多相关,所以我在 blog_posts 中得到了一个 memberID 字段。我正在尝试获取 post 的作者成员的用户名。 我正在考虑加入或做些什么,但我无法弄清楚。 这是我尝试做的,但它不起作用,因为我确定我没有正确使用它。

$query1 = "SELECT username from blog_members JOIN blog_posts ON memberID = memberID ";
$result1 = mysqli_query($link, $query1);
$row1 = mysqli_fetch_array($result1);

PS:我通过使用 SESSION 获取用户 ID 来实现一种工作方式,但只有在用户登录时才有效,但事实并非如此,我想在任何情况下都显示名称。

谢谢!

尝试这样的事情,使用 INNER JOIN :

$query1 = "SELECT blog_members.username FROM blog_members INNER JOIN blog_posts ON blog_members.memberID = blog_posts.memberID ";

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

这样使用内连接

并通过适当的清理使用 $your_user_id 匹配

$query1 =  "SELECT username 
from blog_members 
INNER JOIN blog_posts ON blog_members.memberID = blog_posts.memberID 
WHERE blog_posts.memberID = '" .$your_user_id . "';";

您的查询中的 JOIN 语法错误。

使用以下查询:

 $query1 = "SELECT username from blog_members JOIN blog_posts ON blog_members.memberID = blog_posts.memberID ";
 $result1 = mysqli_query($link, $query1);
 $row1 = mysqli_fetch_array($result1);

这是一个使用简单 WHERE 条件的解决方案(性能相同 Explicit vs implicit SQL joins):

SELECT a.username FROM blog_members a, blog_posts b WHERE a.memberID = b.memberID

但是,如果您需要有关 MySQL 的更多信息,请加入:https://www.sitepoint.com/understanding-sql-joins-mysql-database/

希望对您有所帮助!