在mysql查询中获取下一行

假设我有一个查询: SELECT * FROM table 在这种情况下,我可以获取 id 和 -1 或 +1 id 以获取下一行或上一行。

但是如果我有 SELECT * FROM table WHERE name LIKE ..... 我会得到几行并且它们不会按 id 排序,我怎么能得到下一行或上一行?

我的目标是创建一个画廊,它有一个下一个和上一个按钮,带有指向下一个或上一个图像的链接。

这个画廊可以通过多种不同的方式进行排序和分类。

在这种情况下,是否可以检测哪一行是下一行或上一行?


萧十郎
浏览 233回答 3
3回答

慕哥6287543

您必须添加名为“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))&nbsp; &nbsp; $photoUrl = $db->query("select url from table where ID = $photos[$index] limit 1");// Get the previous photo$index--;if($index >= 0)&nbsp; &nbsp; $photoUrl = $db->query("select url from table where ID = $photos[$index] limit 1");
打开App,查看更多内容
随时随地看视频慕课网APP