SQL查询提取数据建议

时间:2017-11-05 19:26:51

标签: php mysql sql

我已经建立了一个CMS并使用了worpress数据库,wp_posts& wp_postmeta。

我想要完成的是从wp_posts中提取数据,这将显示所有帖子,然后使用第二个查询我试图提取图像。

在wp_posts上,ID等于wp_postmeta上的post_id

我的代码正在运行,但是第二个查询的图片正在为所有帖子提取相同的图片,我如何从第一个查询中的$ 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  } } ?>
                
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

修改:更改图像位置。

我不认为第二个while循环是必要的。如果添加部件以在第一个查询中获取图像,则只需运行一次。请尝试(我没有数据确认100%),但它应该在正确的轨道上:

panel.setLayout(null);