array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'zh', ), 'this' => array ( 0 => 'mysqli-result.data-seek.php', 1 => 'mysqli_result::data_seek', 2 => 'Adjusts the result pointer to an arbitrary row in the result', ), 'up' => array ( 0 => 'class.mysqli-result.php', 1 => 'mysqli_result', ), 'prev' => array ( 0 => 'mysqli-result.current-field.php', 1 => 'mysqli_result::$current_field', ), 'next' => array ( 0 => 'mysqli-result.fetch-all.php', 1 => 'mysqli_result::fetch_all', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/mysqli/mysqli_result/data-seek.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>
(PHP 5, PHP 7, PHP 8)
mysqli_result::data_seek -- mysqli_data_seek — Adjusts the result pointer to an arbitrary row in the result
面向对象风格
过程化风格
The mysqli_data_seek() function seeks to an arbitrary
result pointer specified by the offset in the
result set.
resultoffsetThe row offset. Must be between zero and the total number of rows minus one (0..mysqli_num_rows() - 1).
示例 #1 mysqli::data_seek() example
面向对象风格
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$result = $mysqli->query($query);
/* Seek to row no. 401 */
$result->data_seek(400);
/* Fetch single row */
$row = $result->fetch_row();
printf("City: %s Countrycode: %s\n", $row[0], $row[1]);过程化风格
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$result = mysqli_query($link, $query);
/* Seek to row no. 401 */
mysqli_data_seek($result, 400);
/* Fetch single row */
$row = mysqli_fetch_row($result);
printf ("City: %s Countrycode: %s\n", $row[0], $row[1]);以上示例会输出:
City: Benin City Countrycode: NGA
示例 #2 Adjusting the result pointer when iterating
This function can be useful when iterating over the result set to impose a custom order or rewind the result set when iterating multiple times.
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 15,4";
$result = $mysqli->query($query);
/* Iterate the result set in reverse order */
for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);
/* Fetch single row */
$row = $result->fetch_row();
printf("City: %s Countrycode: %s\n", $row[0], $row[1]);
}
/* Reset pointer to the beginning of the result set */
$result->data_seek(0);
print "\n";
/* Iterate the same result set again */
while ($row = $result->fetch_row()) {
printf("City: %s Countrycode: %s\n", $row[0], $row[1]);
}以上示例会输出:
City: Acmbaro Countrycode: MEX City: Abuja Countrycode: NGA City: Abu Dhabi Countrycode: ARE City: Abottabad Countrycode: PAK City: Abottabad Countrycode: PAK City: Abu Dhabi Countrycode: ARE City: Abuja Countrycode: NGA City: Acmbaro Countrycode: MEX
注意:
This function can only be used with buffered results attained from the use of the mysqli_store_result(), mysqli_query() or mysqli_stmt_get_result() functions.