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

  

复制代码 代码如下:

  <?

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

  )