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';

これにより、大量の DB 呼び出しがなくなります。最初の結果以外の結果で正確に機能していないのは何ですか? wp_posts テーブルに複数の投稿がありますか?

于 2012-09-26T20:15:18.180 に答える