MySQLソリューションを試しましたが、実用的ではないようで、クエリに時間がかかります。
私はこの問題に対するPHPソリューションを探しています:
テーブルの行の中に、4つの異なるサイトからの製品データがあります。
いくつかの条件を使用してクエリを実行すると、結果変数が取得されます。
$result = mysql_query("my query");
今、私は次のようにデータを取得します:
while($slice = mysql_fetch_assoc($result)){
$product_data = $slice['productdata'];
$site = $slice['site'];
}
問題は、$site変数を交互に使用して製品データを表示したいということです。
1. product from site 1;
2. product from site 2;
3. product from site 3;
4. product from site 4;
サイト2のすべての製品がリストされている場合は、次のような他の残りの製品をリストします。
1. product from site 1;
2. priduct from site 3;
3. product from site 4;
等々。
重要:ソリューションがページ付けを壊さないように、結果をページ付けしています。したがって、ページ分割できる合計行数が必要です。
PHPソリューションはありますか?
アップデート:
$result = mysql_query("SELECT site, product FROM ".$table." WHERE my mysql conditions LIMIT ".$offset.", ".$rowsperpage."");
$rowsperpage = 20;
サイト3に他の行よりもはるかに多くの行がある場合、コードを使用すると次のように生成されます。
ページ1:
- サイト1の製品。
- サイト2の製品。
- サイト3の製品。
- サイト1の製品。
- サイト2の製品。
- サイト3の製品。
- サイト3の製品。
- サイト3の製品。
- ....。
- 20まで
2ページ:
- サイト1の製品。
- サイト2の製品。
- サイト3の製品。
- サイト1の製品。
- サイト2の製品。
- サイト3の製品。
- サイト3の製品。
- サイト3の製品。
- ....。
- 20まで
ページ3は、残りのサイトを3行表示します。
- サイト3の製品。
- サイト3の製品。
- サイト3の製品。
- ....。
- 20まで
問題は、ページ1とページ2に他の製品よりも多くのサイト3製品が表示されることです。
これは、行がランダムに混合および順序付けされているmysqlクエリが原因です。そして、そのうちの20を呼び出すと、サイトの行数は同じになりません。
私は次のようなことを達成したい:
ページ1:
- サイト1の製品。
- サイト2の製品。
- サイト3の製品。
- サイト1の製品。
- サイト2の製品。
- サイト3の製品。
- サイト1の製品。
- サイト2の製品。
- サイト3の製品。
- ....。
- 20まで
2ページ:
- サイト1の製品。
- サイト2の製品。
- サイト3の製品。
- サイト3の製品。
- サイト2の製品。
- サイト3の製品。
- サイト3の製品。
- サイト3の製品。
.....20まで
私が達成したいことは、オフセットと制限なしでページ化された各ページにクエリがある場合にのみコードで機能します