php - 在 foreach 循环中查询?尝试获取返回的每行中每个外国 ID 号的用户名

标签 php mysql

我正在尝试为每条记录显示喜欢其他用户帖子的人的用户名。到目前为止,我只能弄清楚如何显示该用户ID号(我们从points.LID获得)。这就是下面的代码所做的。我已经尝试了一些方法,但我不知道如何在 foreach 循环内获取第二个 sql 查询,以便我可以获取每个喜欢的用户的 LID/ID 的 user_name 。

我需要从 LID sql 某处/以某种方式获取用户显示名称,以便我可以回显喜欢该帖子的人的姓名(LID)。我需要使用 LID 连接到 wp_users 表中的 wp_users.ID,然后获取 wp_users.display_name。但是我可以在下面的 foreach 循环中插入这样的查询吗?

我想我需要添加类似的内容(从points.ID = $user_ID的点中选择points.LID)然后获取wp_users.ID = points.LID的显示名称

这些是具有相关列的 3 个表: 1. 点(ID、LID、SID)、 2.故事(ID,故事名称) 3. wp_users(ID,display_name)

//此代码返回故事名称和喜欢它的人的 ID 号 (LID)。但我需要它返回喜欢它的人的用户名(wp_users.display_name)

//only need current user for ID of author
$user_ID = get_current_user_id()

$results = $dbh->prepare("select 
stories.ID,
stories.SID,
stories.story_name,
points.ID,
points.LID,
points.PID,
wp_users.ID,
wp_users.display_name
FROM stories
JOIN points ON stories.SID=points.SID
JOIN wp_users ON stories.ID=wp_users.ID
where (stories.ID = $user_ID) and (PID = 1)");
$results->execute();

$row = $results->fetchAll(PDO::FETCH_ASSOC);

if ($row) {
echo '<table>';
echo '<tr>';
echo '<td><b>Name</b></td>';
echo '<td><b>Author</b></td>';
echo '</tr>';
foreach ($row as $all) {

//Get user display name from LID sql here? So I can echo name of person
//who liked the post (the LID) below? I need use LID to connect to
//wp_users.ID in wp_users table and then grab wp_users.display_name

$stp = stripslashes($all['story_name']);
echo '<tr>';
echo "<td><a href=\"http://example.com/complete-text?
writing=$all[SID]\">$stp</a></td>";
echo "<td><a href=\"http://example.com/portfolio?ID=$all[LID]\">
$all['LID']</a></td>";
}
echo '</table>';
}
?>

最佳答案

SELECT 
  stories.ID,
  stories.SID,
  stories.story_name,
  points.ID,
  points.LID,
  points.PID,
  wp_users.ID,
  wp_users.display_name,
  wp_users2.display_name AS 'user_who_liked',
FROM
  stories 
  JOIN points 
    ON stories.SID = points.SID 
  JOIN wp_users 
    ON stories.ID = wp_users.ID 
  LEFT JOIN wp_users AS wp_users2 
    ON points.LID = wp_users2.ID 
WHERE (stories.ID = $user_ID) 
  AND (PID = 1) ;

关于php - 在 foreach 循环中查询?尝试获取返回的每行中每个外国 ID 号的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29323961/

相关文章:

php - 如何将新值插入 mysql json 数组?

php - 锻炼平均时间

php - 比较两个mysql表并显示变化

PHP/SQL简单搜索引擎

php - 使用 Jquery、AJAX 和 PHP 从 MySQL 数据库中检索数据

php - CodeIgniter:帮助从网页获取元标记的类/库?

php - 检查重定向源

PHP 和 MySQL : Making a row in table to a variable specified by a $_POST ['username' ]

mysql - 将 Crystal Reports 连接到 VPS

mysql - SELECT 中的 COUNT() 未产生所需的输出