-3

数据库mysql中的示例表,

id alphabet
1  A
2  B
3  C
4  D

我的项目要求我从数据库中获取 26 个数组。有没有办法将我的输出限制为1而不限制它,因为我想显示例如:A,然后按下一个按钮,如果它符合要求,它将显示B?

4

4 回答 4

2

PHP 在服务器上运行,它不能直接响应用户点击。每次用户单击页面链接时,脚本都会重新开始。

脚本第一次运行时,您可以运行查询并将所有结果保存在会话变量中(array_data在下面的示例中调用)。然后,您可以使用一个参数将按钮链接到脚本,该参数告诉它要显示哪个行号。就像是:

if(!isset($_SESSION['array_data'])) {
  $_SESSION['array_data'] = array();
  <execute query>
  while ($row = <fetch row>) $_SESSION['array_data'][] = $row;
}
$cur_row = isset($_REQUEST['rowid']) ? $_REQUEST['rowid'] : 0;
printf("Data is: %s<BR/>", htmlentities($_SESSION['array_data'][$cur_row]));
printf("<A HREF='scriptname.php?rowid=%d'>Next row</A>", $cur_row+1);
于 2012-07-20T04:47:19.847 回答
0

我带着你的问题在这里暗中拍摄。使用 LIMIT 和 OFFSET 可以帮助您检索单行。

SELECT id, alphabet FROM table LIMIT 1 OFFSET 0

LIMIT 1 将始终为您提供一条记录。OFFSET 表示要跳过多少行。

限制和偏移

于 2012-07-20T03:59:29.143 回答
0

您可以LIMIT在 SQL 中使用来限制获得的结果数量。

于 2012-07-20T03:42:41.513 回答
0

或者您可以简单地使用 FOR(){} 循环。前任:

for($i; $i < 1; $i++){

$DoSql = mysql_query("SELECT * FROM <database> ORDER BY ABS(<datarow>) asc");
$FetchSql = mysql_fetch_array($DoSql);

---Your code goes Here---

}
于 2013-09-02T06:28:05.790 回答