php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]

时间:2022-03-21 10:30:26

代码如下:


<? 
// Start snipit 1 
$sql = "SELECT * from <table>"; 
$result = mysql_query($sql); 
while ($row = mysql_fetch_assoc($result)) { 
// do stuff with $row 

mysql_data_seek($result, 0); //关键是这儿 
while ($row = mysql_fetch_assoc($result)) { 
// do other stuff with $row 

?> 



定义和用法 

mysql_data_seek() 函数移动内部结果的指针。 

语法 

mysql_data_seek(data,row)参数 描述 
data 必需。返回类型为 resource 的结果集。该结果集从 mysql_query() 的调用中得到。 
row 必需。想要设定的新的结果集指针的行数。0 指示第一个记录。 

说明 

mysql_data_seek() 将 data 参数指定的 MySQL 结果内部的行指针移动到指定的行号。 
接着调用 mysql_fetch_row() 将返回那一行。 
row 从 0 开始。row 的取值范围应该从 0 到 mysql_num_rows - 1。 
但是如果结果集为空(mysql_num_rows() == 0),要将指针移动到 0 会失败并发出 E_WARNING 级的错误,mysql_data_seek() 将返回 false。 

返回值 

如果成功则返回 true,失败则返回 false。

提示和注释

注释:mysql_data_seek() 只能和 mysql_query() 一起使用,而不能用于 mysql_unbuffered_query()

例子 

复制代码代码如下:


<?php 
$con = mysql_connect("localhost", "hello", "321"); 
if (!$con) 

die('Could not connect: ' . mysql_error()); 

$db_selected = mysql_select_db("test_db",$con); 
$sql = "SELECT * from Person"; 
$result = mysql_query($sql,$con); 
print_r(mysql_fetch_row($result)); 
mysql_data_seek($result,3); 
print_r(mysql_fetch_row($result)); 
mysql_close($con); 
?> 


输出: 

复制代码代码如下:


Array 

[0] => Adams 
[1] => John 
[2] => London 


Array 

[0] => Carter 
[1] => Thomas 
[2] => Beijing