Php 如何限制从while循环获取

Php 如何限制从while循环获取,php,mysql,database,Php,Mysql,Database,数据库mysql中的一个示例表 id alphabet 1 A 2 B 3 C 4 D 我的项目需要我从数据库中获取26个数组。 有没有一种方法可以将我的输出限制为1而不限制它,因为我想显示例如:a, 然后按下一个按钮,如果它符合要求,它将显示B?您可以使用SQL中的LIMIT来限制您得到的结果数量。我在这里对您的问题进行了一次黑暗的拍摄。使用“限制”和“偏移”可以帮助检索单行 SELECT id, alphabet FROM table LIMIT 1 OFFSET 0 限制1将始

数据库mysql中的一个示例表

id alphabet
1  A
2  B
3  C
4  D
我的项目需要我从数据库中获取26个数组。 有没有一种方法可以将我的输出限制为1而不限制它,因为我想显示例如:a,
然后按下一个按钮,如果它符合要求,它将显示B?

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

我在这里对您的问题进行了一次黑暗的拍摄。使用“限制”和“偏移”可以帮助检索单行

SELECT id, alphabet FROM table LIMIT 1 OFFSET 0
限制1将始终为您提供一条记录。偏移量表示要跳过多少行


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);

或者您可以简单地使用FOR{}循环。 例:


将我的输出限制为1而不限制它意味着什么?你想限制它还是不想?我的意思是我想我需要读取数据库中的所有数据,但我想只显示数据库中的A,然后单击它,然后将从数据库中读取B。你可以使用ajax在他们准备按下时运行另一个查询。你可以使用纯PHP解决方案,如我的答案。或者你可以使用CSS和Javascript。让PHP打印所有行,但除了A之外的所有行都使用visibility:hidden。然后按钮的onclick操作将A的可见性更改为hidden,B的可见性更改为visibility:visible。每次单击时,它都会将“可见”特性移动到下一行。这要快得多,因为它不需要访问服务器。但它对禁用Javascript的用户不起作用,如果表太大,则意味着第一次命中的速度要慢得多。我使用的是ecmascript…很好的外推,解决了问得不好的问题%
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---

}