行。我在PHP
项目中工作。
我的数据库中有一些分类数据 -
例如 - 我有三个类别的数据。
第1类 第2类
第3类
可以更改类别。像2,3,4,5等。
我有能力显示数据限制。
实施例。让我们说Admin只想显示9条记录
所以现在我们有三个类别和x限制(根据示例为9)。最好的是 -
我需要显示每个类别的N条记录和总X条记录。
这里N个数字适用于每个类别。所以它看起来像这样:
N1 + N2 + N3 = X(限制例9)
来自Category1的N1来自Category2的N2中来自Category3的N3
所以基本上我已经像这样制定了它 -
NumberOfRecordPerCategory = X(限制)/ N(类别数量)
但如果我将限制倍数设为3,如6,9,12等,它实际上是有效的。
所以我的问题是 -
如何根据限制(X)管理总记录 -
1.如果管理员设置的限制不是多重3,如8,10,11等。
2.如果管理员更改了类别2或4的类别,那么我该如何管理呢?
请对此有所了解。如果问题不明确,请告诉我。
答案 0 :(得分:0)
我会根据您的要求选择ceil(圆形分数)。如果存在一些分数,因为该数字不是3的倍数,例如11个有3个类别,则每个类别的限制为4,4,3。这可以通过具有两个限制值来完成:总限制,每个类别的限制。 以下是我对您的需求的建议(代码):
<?php
/*
$data = array (
"category1" => array (1,2,3,4,5),
"category2" => array (10,20,30,40,50),
"category3" => array (100,200,300,400,500),
);
*/
$limit = 11; // given by the admin
$number_of_categories = count($data);
$limit_per_category = ceil ( $limit / $number_of_categories ); // ceil (11 / 3) = 4
$cnt = 0; // tracking the total number of retrieved data.
foreach ($data as $row) {
$cnt_category = 0;
foreach ($row as $item) {
echo $item . "\n"; // print the first N (NumberOfRecordPerCategory) data
$cnt_category++;
$cnt++;
if ($cnt >= $limit) break; // exit the loop
if ($cnt_category >= $limit_per_category) break; // move to next category
}
if ($cnt >= $limit) break; // exit the loop
}