PHP逻辑问题

PHP逻辑问题,php,logic,Php,Logic,我有一个sql表images,其中包含列id,imagePath,caption``count 要查看这些图像,我要做的是,输入页码并查询图像 $limit=$page-1; $sel=$mysqli->prepare("SELECT id,imagePath,caption,count from images". " order by id desc limit ".$limit.",1"); 这样可以正确显示图像 但我有另一个功能,它显

我有一个sql表
images
,其中包含列
id
imagePath
caption``count

要查看这些图像,我要做的是,输入页码并查询图像

$limit=$page-1;
$sel=$mysqli->prepare("SELECT id,imagePath,caption,count from images".
                        " order by id desc limit ".$limit.",1");
这样可以正确显示图像

但我有另一个功能,它显示数据库中所有图像中的4个随机缩略图。对于这些图像,我还提供了一个href标记,这样当用户单击该链接时,他将被带到该图像的页面

现在的问题是这些链接。 假设数据库中有这样的图像

id=1
id=2
id=3
id=4
id=5
要查找特定id的页码,我要做的是

$newid=$idOfTheCurrentImage-($idOfTheLastImage-1);
用这个逻辑,我得到

id=1  page=5
id=2  page=4
id=3  page=3
id=4  page=2
id=5  page=1
如果所有ID都正常,则会给出正确的结果。但是,如果id中的任何一个被删除,这个逻辑就会失败


还有其他解决办法吗

您可以执行以下操作:

  • 添加另一个字段,一个“序列号”,这样就有了对($id,$seq_number),并像使用$seq_number一样进行计算。不要忘记在删除时更新序列号字段

  • 获取数组中的所有id,然后在那里计算。在该选项中,计算中不使用$id值,只使用数组索引


希望这有帮助。干杯

我建议使用运行计数器以外的东西作为页面分母。正如您所说,它可能会发生更改,如果中间缺少一个数字,它可能会失败

您的图像有一个标题。您可以从中创建一个“slug”,并将其用作页面分母


在创建链接时,不再有古怪的数学或模糊的逻辑,不再有消失的页面。

Thnaks会尝试一下,很快会让你知道:)你为什么不直接传递
id
,而不是
页面
(或两者兼有)?这将更简单、更快:
选择id、imagePath、标题、从图像中计数,其中id=$id
将以升序显示图像我想先显示最近添加的图像,等等。嘿,好主意,一定会在我未来的项目中使用,谢谢