为了账号安全,请及时绑定邮箱和手机立即绑定

在mysql查询中获取下一行

在mysql查询中获取下一行

PHP
萧十郎 2021-06-14 17:32:21
假设我有一个查询: SELECT * FROM table 在这种情况下,我可以获取 id 和 -1 或 +1 id 以获取下一行或上一行。但是如果我有 SELECT * FROM table WHERE name LIKE ..... 我会得到几行并且它们不会按 id 排序,我怎么能得到下一行或上一行?我的目标是创建一个画廊,它有一个下一个和上一个按钮,带有指向下一个或上一个图像的链接。这个画廊可以通过多种不同的方式进行排序和分类。在这种情况下,是否可以检测哪一行是下一行或上一行?
查看完整描述

3 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您必须添加名为“GalleryID”或类似内容的列,并从搜索查询中获取 GalleryID,然后按 GalleryID 选择所有照片并按 ID 对它们进行排序,现在您有了已排序的照片列表,例如:


$queryResult = $db->query("SELECT GalleryID FROM table WHERE name LIKE '%WHAT I WANT%'")->fetchall();

$GalleryID = $queryResult[0]['GalleryID'];

$photos = $db->query("SELECT ID FROM table WHERE GalleryID = $GalleryID order by ID asc")->fetchall();

现在你可以玩 INDEX;


$index = 0; // Current photo index

//Get next photo

$index++;

if($index < count($photos))

    $photoUrl = $db->query("select url from table where ID = $photos[$index] limit 1");


// Get the previous photo

$index--;

if($index >= 0)

    $photoUrl = $db->query("select url from table where ID = $photos[$index] limit 1");


查看完整回答
反对 回复 2021-06-19
  • 3 回答
  • 0 关注
  • 232 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信