繁体   English   中英

SQL查询拉取数据建议

[英]SQL query pulling data advice

我建立了一个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 } } ?> 

编辑:更改图像位置。

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

<?php
$query = "SELECT 
        wp_posts.*, 
        (SELECT meta_value FROM wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = '_wp_attached_file' ORDER BY meta_id DESC LIMIT 1) as image 
    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'];  
    $image        = $row['image'];
?>
    <!-- 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='/wp-content/uploads/<?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 } ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM