imagesという名前のテーブルが1つあります
ここにあります :
+------------------+---------------+----------------------+
| 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 |
+------------------+---------------+----------------------+
ここで、画像のカテゴリごとに取得したいと思います。これは、一度に各カテゴリから画像を取得し、uploaddate の降順で取得することを意味します。
提案しないでください :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 関数を使用して配列を切り取ります
そのすべてを処理するより良いソリューションまたは単一のクエリを提案してくれる人はいますか...
前もって感謝します..