我希望每次在应用程序中单击next时自动获取连续行,该行获取下一条记录,例如从a1到a2,从a2到a3等等。以下是我的表格结构:
|id|code |1 | A1 |2 | A2 |3 | A3 |4 | A4
pkln4tw61#
假设 code 列在表中是唯一的,并且假设我们在 code 命令,我们可以保存 code 返回给用户/浏览器的网页中当前行的值
code
<input type="hidden" name="code_current" value="A2"/>
(作为单击“下一步”按钮时提交的表单的一部分)然后在处理表单提交的php脚本中,我们从表单中提取值,例如。
$code_prev = $_POST['code_current']
并在执行获取“next”行的sql时使用该值。那将是一场争吵 code 值大于上一个值。例如:
$sql = 'SELECT t.id , t.code FROM mytable t WHERE t.code > ? ORDER BY t.code LIMIT 1';
假设我们已经配置了pdo连接 $dbh 要在检测到错误时引发异常。。。
$dbh
$sth = $dbh->prepare($sql); $sth->execute($code_prev);
我们包括 code 在用户单击“下一步”时返回的窗体上,网页隐藏输入中的列(从数据库检索到的行的列)。。。
if( $row = $sth->fetch(PDO::FETCH_ASSOC) { echo '<input type="hidden" name="code_current" value="' . htmlspecialchars( $row['code'] ) . '"/>'; }
这假设行是按顺序返回的 code 价值观。如果他们被送回 id 改为订购,然后使用 id 柱代替 code .如果 code 不是唯一的,也就是说,如果有(或可以有)多个行具有相同的 code 价值,我们可以两者兼用 code 以及 id 价值观。where子句中的条件如下:
id
WHERE t.code >= ? AND (t.code > ? OR t.id > ? )
这样,如果我们拉取的上一行是code=a2id=2,那么获取“next”行的查询将等价于:
WHERE t.code >= 'A2' AND ( t.code > 'A2' OR t.id > 2 )
1条答案
按热度按时间pkln4tw61#
假设
code
列在表中是唯一的,并且假设我们在code
命令,我们可以保存code
返回给用户/浏览器的网页中当前行的值(作为单击“下一步”按钮时提交的表单的一部分)
然后在处理表单提交的php脚本中,我们从表单中提取值,例如。
并在执行获取“next”行的sql时使用该值。那将是一场争吵
code
值大于上一个值。例如:假设我们已经配置了pdo连接
$dbh
要在检测到错误时引发异常。。。我们包括
code
在用户单击“下一步”时返回的窗体上,网页隐藏输入中的列(从数据库检索到的行的列)。。。这假设行是按顺序返回的
code
价值观。如果他们被送回id
改为订购,然后使用id
柱代替code
.如果
code
不是唯一的,也就是说,如果有(或可以有)多个行具有相同的code
价值,我们可以两者兼用code
以及id
价值观。where子句中的条件如下:
这样,如果我们拉取的上一行是code=a2id=2,那么获取“next”行的查询将等价于: