gpt4 book ai didi

mysql - Wordpress 查询/循环复制相同内容 24 次

转载 作者:行者123 更新时间:2023-11-29 06:53:02 26 4
gpt4 key购买 nike

我有一个小的查询问题,也许你可以帮我解决。我正在尝试从具有特定评论元的帖子中获取所有评论。这是我目前所拥有的:

$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments INNER JOIN wp_commentmeta WHERE comment_post_ID = '256' AND comment_approved = '1' AND meta_key = 'bestcomment' AND meta_value = 'yes' ");  ?>
<ul id="bestcomment">
<h2>Best Comment</h2>
<?php
if ( $comments ) : foreach ( (array) $comments as $comment) :
echo '<li class="recentcomments">' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="'. get_comment_link($comment->comment_ID) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
endforeach; endif;?></ul>

这篇文章应该只有一个评论。不幸的是,查询显示相同的结果 24 次。所以循环一定有问题。想法?

最佳答案

循环没有问题。问题是您的查询生成笛卡尔积(CROSS JOIN),因为您没有指定两个表应该链接到的列。

我能给出的最快答案是在 ON 子句上定义链接列,

$comments = $wpdb->get_results("
SELECT *
FROM $wpdb->comments a
INNER JOIN wp_commentmeta b
ON a.ColumnName = b.Columnname <== define here
WHERE comment_post_ID = '256' AND
comment_approved = '1' AND
meta_key = 'bestcomment' AND
meta_value = 'yes' ");

只需将 ColumnName 更改为表中列的真实名称即可。

要了解有关JOIN 的更多信息,请查看下面的文章,

关于mysql - Wordpress 查询/循环复制相同内容 24 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14331975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com