1

我有显示来自 WordPress 数据库的所有帖子的 PHP 脚本。然后该脚本获取作者的用户 ID 并在数据库的用户表中查询它以找出他们的显示名称。但是,这目前仅适用于第一个结果。为什么是这样?

<?

mysql_connect('localhost','username','password');
mysql_select_db('database');

$result=mysql_query("SELECT * FROM wp_posts WHERE post_type='post'");
while($row=mysql_fetch_array($result)){
echo'<p><h3>'.$row[post_title].'</h3><br>';

$user=mysql_query("SELECT * FROM wp_users WHERE ID='$row[post_author]'");
while($u=mysql_fetch_array($user)){
echo $u[display_name];
}
echo' </p>';
}

?>
4

1 回答 1

3

你为什么不改变你的查询

Select users.display_name, posts.post_title 
FROM wp_posts posts 
inner join wp_users users on posts.post_author = users.ID
where posts.post_type = 'post';

这将摆脱大量的数据库调用。除了第一个结果之外,究竟什么对任何结果都不起作用?您确定 wp_posts 表中有超过 1 个帖子吗?

于 2012-09-26T20:15:18.180 回答