我正在尝试为每条记录显示喜欢其他用户帖子的用户名。到目前为止,我只能弄清楚如何显示该用户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,story_name) 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>';
}
?>
答案 0 :(得分:0)
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) ;