通过将 MySQL 中的数据放入组中来控制要显示的数据


Control data to display from MySQL by putting them into a group

我的数据库中有很多项目,显示它们没有问题。只是我想通过对它们进行分组来组织从数据库中获取的项目。

例如,我有 50 个项目,我想先显示前 10 个项目,然后保留其余项目以供以后显示。因此,如果用户单击"查看下一个项目"按钮或适当的数字(例如,10 个项目位于"1"中,因此如果单击"2",它应该显示第 2 个 10 个项目,直到所有项目都显示 10 及其相应的编号组项目持有人),则将显示接下来的 10 个项目并将替换前 10 个项目。简而言之,我希望项目显示 10。

我有这个当前代码:

.PHP

$result = mysql_query("SELECT * FROM items");
$data = "";
while($row = mysql_fetch_array($result)) {
    $data .= "<a href='#' id='".$row['id']."' class='theitem'><img src='media/".$row['picture']."' /></a>";
}

.HTML

<div id="itemsholder">
  <? echo $data; ?>
</div>

下面应该有一个数字导航,该数字应该对应于 50 个项目之外的 10 个项目的数量。例如,对于 50 个项目,由于我只想显示 10 个项目,因此我应该有 1、2、3、4、5 个链接或"显示下一个项目"按钮,以便每当用户点击该按钮时,它将显示接下来的 10 个项目和其余项目。

PS:我愿意接受建议,建议和想法。

谢谢

,希望这里有人可以帮忙,谢谢。

这是一种常见的设计模式,称为分页。 你可能想谷歌php分页并消化一些结果。

简而言之,一般模式是计算出总共有多少项(通过 SELECT COUNT(*) 查询,或者对于非常大的数据集,将其存储在另一个位置并在添加或删除项时更新它)并使用 LIMIT 子句运行查询。

例如,如果您希望每个页面包含 20 个项目,并且您位于第 5 页,而不是:

SELECT * FROM items;

请改为运行此版本:

SELECT * FROM items LIMIT 100, 20;

并将这些结果显示为页面。 如果总项目数$n,则页数将为:

floor(($n + 1) / 20);

使用分页,那里有很多,只需在Google中搜索它们即可。 以下是帮助您入门的代码。

SELECT * FROM items LIMIT 100, 20;