我有一张名为 images 的表
这里是 :
+------------------+---------------+----------------------+
| iid | category | imagename | uploaddate |
+------------------+---------------+----------------------+
| 1 | cat1 | 123.png | 2013-01-01 01:01:01 |
| 2 | cat2 | 456.png | 2013-01-01 01:01:02 |
| 3 | cat2 | 789.png | 2013-01-01 01:01:03 |
| 4 | cat3 | 001.png | 2013-01-01 01:01:04 |
| 5 | cat3 | 002.png | 2013-01-01 01:01:05 |
| 6 | cat3 | 002.png | 2013-01-01 01:01:06 |
| 7 | cat4 | 004.png | 2013-01-01 01:01:07 |
| 8 | cat4 | 005.png | 2013-01-01 01:01:08 |
| 9 | cat4 | 006.png | 2013-01-01 01:01:09 |
| 10 | cat4 | 007.png | 2013-01-01 01:01:10 |
+------------------+---------------+----------------------+
现在我想明智地检索图像类别。这意味着一次从每个类别中获取图像,并按上传日期降序排列。
请不要建议:SELECT * FROM images GROUP BY category ORDER BY uploaddate DESC
因为我使用分页来显示图像,并且每个页面都包含来自不同类别的不同图像。
我解决了这个问题,但还有其他方法可以解决它......这是我的解决方案:
=> 查找所有不同的类别并将其保存在数组中。
=> 迭代 for 循环并从该特定类别中获取图像。
for($i=0;$i<count($distinctcat);$i++)
{
$qry = "SELECT * FROM images WHERE category = '".$distinctcat."'";
// fetch that data then save it in to array
}
=> 按日期排列图像。
=> 根据我们的分页限制和页码使用 array_slice 函数切割数组
任何人都可以建议我更好的解决方案或单个查询来处理所有这些事情......
提前致谢..