让我解释一下我正在尝试做什么。首先,这是我目前的结果预览:
我的查询:
SELECT slides.name as slide, filename, time, sort_id
FROM `slide_sort`
INNER JOIN slides
ON slide_sort.slide_id = slides.id
WHERE slide_sort.user_id = 1
所以每张幻灯片都是一个已经创建的页面,但是每个用户都可以指定在该页面上停留多长时间以及下一张“幻灯片”是什么。
所以 HTML 看起来像这样:(dashboard.php)
<meta http-equiv="refresh" content="40;url=did-you-know.php">
现在它是硬编码的,但我希望能够从数据库中提取它。
因此,在 dashboard.php 文件中,我可以在顶部添加一些内容,例如:$currentSlide = "Dashboard";
这样我就可以添加到查询中 AND slide = $currentSlide
这样我就可以看到该幻灯片的时间是 40 秒,所以我可以将其粘贴到 content="$time"
中。但我的问题是,如何添加另一个查询来获取 NEXT sort_id so sort_id + 1 并获取该文件名,这样我就会得到以下信息:
幻灯片 - 时间 - 下一个文件名
仪表板 - 40 - did-you-know.php
但我还需要查看它是否是最后一个 sort_id,如果是,那么下一张幻灯片需要从 #1 开始。
这有意义吗?
如果有人能帮助我找到正确的方向,我将不胜感激。
谢谢!
最佳答案
您可以使用类似这样的方式检索 NEXT 排序 ID:
SELECT slides.name as slide, filename, time, sort_id
FROM `slide_sort`
INNER JOIN slides
ON slide_sort.slide_id = slides.id
WHERE slide_sort.user_id = 1 and slide_sort.sort_id = ($sort_id + 1)
您可以使用如下方式检索最后的排序 ID:
SELECT sort_id
FROM `slide_sort`
INNER JOIN slides
ON slide_sort.slide_id = slides.id
WHERE slide_sort.user_id = 1 order by sort_id desc limit 1
您可以使用以下内容检查这是否是最后一张幻灯片:
if ($sort_id == $last_sort_id)
如果是,您可以检索第一个排序 id 记录:
SELECT slides.name as slide, filename, time, sort_id
FROM `slide_sort`
INNER JOIN slides
ON slide_sort.slide_id = slides.id
WHERE slide_sort.user_id = 1 order by sort_id ASC limit 1
关于php - MySQL 将查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8582129/