好的,我的SQL查询是:
$image_results = $wpdb->get_results('SELECT * FROM uploaded_images GROUP BY album_title') ;
我现在要做的是为每个不同的* album_title *提供不同的结果集,在标签中输出相册标题,然后显示具有该专辑标题的项目列表。
这是我到目前为止所拥有的:
<?php foreach ($image_results as $result => $coll):?>
<h4><?php echo $coll->album_title;?></h4>
<?php foreach ( $coll->file_name as $i => $row ) : ?>
<p><img src="http://example.com/<?php echo $row->file_name; ?>"/></p>
<?php endforeach; ?>
<?php endforeach; ?>
答案 0 :(得分:1)
更新问题后,我认为这就是您要找的内容。请注意,我使用的是ORDER BY
而不是GROUP BY
。在使用SUM
,AVG
或其他聚合函数之类的事物时使用分组。这可以在一个循环中处理:
$image_results = $wpdb->get_results('SELECT * FROM uploaded_images ORDER BY album_title');
$curTitle = '';
foreach($image_results as $result => $col) {
if($curTitle !== $col['album_title']) {
$curTitle = $col['album_title'];
echo "<h4>$curTitle</h4>";
}
echo '<p><img src="' . $col['file_name'] . '" /></p>';
}
答案 1 :(得分:0)
简单方法:
$album_titles = array();
$image_results = $wpdb->get_results('SELECT * FROM uploaded_images GROUP BY album_title') ;
foreach ($image_results as $result){
$album_titles[ $result['album_title'] ][] = $result;
}
foreach( $album_titles as $title -> $images ){
echo "<h4>".$title."</h4>";
foreach( $images as $image ){
echo "<br/>".$image['file_name'];
}
}
所以你选择它,制作一个标题数组并输出具有相同标题的所有内容。