私はCMSを構築し、worpressデータベースwp_posts & wp_postmetaを使用しています。SQLクエリーのデータアドバイス
私が達成しようとしているのは、すべての投稿を表示するwp_postsからデータを取得し、次に2番目のクエリで画像を取り出そうとしています。
wp_postsにIDが私のコードは、しかし、2番目のクエリ上の画像は、すべての記事を同じ画像を引っ張って取り組んでいる
、どのように私は$ IDから画像を引っ張って行くのですwp_postmetaにpost_idのに等しいです最初のクエリから取得します。
<?php
$query = "SELECT * FROM wp_posts
ORDER BY post_date DESC LIMIT 0, 25";
$result = mysqli_query($connection, $query) or die(mysqli_error($connection));
while($row = mysqli_fetch_array($result)) {
$ID = $row['ID'];
$post_title = $row['post_title'];
$post_date = $row['post_date'];
$post_excerpt = $row['post_excerpt'];
$post_content = $row['post_content'];
$querystrs = "
SELECT post_id,
MAX(CASE WHEN meta_key = '_wp_attached_file' THEN meta_value END) '_wp_attached_file'
FROM wp_postmeta
WHERE meta_key IN('_wp_attached_file') AND post_id = '' ";
$select_postmetaimage = mysqli_query($connection, $querystrs) or die(mysqli_error($connection));
while($row = mysqli_fetch_assoc($select_postmetaimage)) {
$image = $row['key_value'];
?>
<!-- First Blog Post -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3><a href="post.php?p_id=<?php echo $ID; ?>"><font color="white"><?php echo $post_title; ?></font></a></h3>
<p><span class="glyphicon glyphicon-time"></span> <?php echo humanTiming(strtotime($post_date)); ?>
</p>
</div>
<div class="panel-body">
<img class='col-md-4' align='left' width='148' src='images/<?php echo $image; ?>' alt=''>
<p><?php echo $post_content; ?></p>
</div>
<p align="right"><a class="btn btn-primary" href="post.php?p_id=<?php echo $ID; ?>">Read More <span class="glyphicon glyphicon-chevron-right"> </span></a></p>
</div>
<?php } } ?>
一度に必要なすべてのデータを取得するために1つのクエリを使用してください。あなたはデータベースの紹介と質問を読む必要があります。ここでは、結合を使用します。 [mcve]も読んで行動してください。また、あなたのコードは動作しているが、それは動作していないと言う。あなたが実際に何を意味しているかを十分な言葉と段階でご記入ください。 – philipxy
クエリはwp_postsのデータベースからすべてのストーリーを引っ張っていますが、2番目のクエリーのイメージは1つのイメージをすべてのポストで同じイメージを取得するだけです。INNER JOINとLEFT JOINを使用しようとしましたが空白のページです – Brian
編集してくださいあなたの投稿への明確化、それらをコメントに入れないでください。 [wordpress.so]を試してみてください。しかし、あなたはまだ[mcve]を与えるべきです。これは、あなたが望むもの、望ましい出力、実行可能な入力と最小限のコードの明確な説明です。しかしあなたはあなたの質問を編集していません。あなたが何を意味するのかをすでに知っていれば、あなたが何を言いたいのか分かりません。それがうまくいくまでコードを切り取り、エラーを表示するのに十分な量を加えてください。文字列をエコーしてから実行してください。 *内側と外側の結合の定義を読んでください。* – philipxy