2012-07-20 111 views
-3

一个例子表mysql数据库,如何限制从while循环

id alphabet 
1 A 
2 B 
3 C 
4 D 

我的项目需要我从数据库中获取26数组提取。 有没有办法来限制我的输出为1前没有限制它,因为我想显示如:A, 然后通过按下一个按钮,如果符合要求,便会显示器B?

+0

什么是“限制我的输出为1前没有限制它”是什么意思?你想限制它还是你? – Barmar 2012-07-20 03:47:50

+0

我的意思是,我想我需要读取数据库中的所有数据,但我想从数据库中显示只有A,然后通过单击它,然后从数据库中读取B中。 – Trifers 2012-07-20 03:57:57

+0

你可以使用AJAX来运行另一个查询时,他们已经准备好按B键 – 2012-07-20 04:01:42

回答

0

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

0

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

SELECT id, alphabet FROM table LIMIT 1 OFFSET 0 

LIMIT 1将永远给你一个记录。 OFFSET表示要跳过多少行。

LIMIT and OFFSET

2

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

第一次运行脚本,你可以运行查询并保存在session变量(在下面的例子中称为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); 
+0

很好的外推和解决方案的问题很少%) – spacediver 2012-07-20 05:18:34

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

}