(PHP 4, PHP 5)
mysql_data_seek — Mueve el puntero de resultados interno
Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su lugar, deberían usarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API y P+F relacionadas para más información. Las alternativas a esta función incluyen:
PDO::FETCH_ORI_ABS
$result
, int $row_number
)mysql_data_seek() mueve el puntero de filas interno del resultado de MySQL asociado con el identificador de resultado especificado para apuntar al número de fila especificada. La siguiente llamada a una función de obtención de MySQL, tal como mysql_fetch_assoc(), devolverá esa fila.
row_number
empieza en 0.
row_number
debería ser un valor en el rango de 0 a
mysql_num_rows() -1. Sin embargo, si el conjunto de resultados
esta vacío (mysql_num_rows() == 0), una búsqueda a 0
fallará con un E_WARNING y
mysql_data_seek() devolverá FALSE
.
result
El resultado resource que está siendo evaluado. Este resultado proviene de una llamada a mysql_query().
row_number
Número de la fila deseada del puntero de resultados nuevo.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Ejemplo #1 Ejemplo de mysql_data_seek()
<?php
$enlace = mysql_connect('localhost', 'usuario_mysql', 'contraseña_mysql');
if (!$enlace) {
die('No pudo conectarse: ' . mysql_error());
}
$bd_seleccionada = mysql_select_db('bd_muestra');
if (!$bd_seleccionada) {
die('La base de datos no pudo seleccionarse: ' . mysql_error());
}
$consulta = 'SELECT apellido, nombre FROM amigos';
$resultado = mysql_query($consulta);
if (!$resultado) {
die('La consulta falló: ' . mysql_error());
}
/* obtención de filas en orden inverso */
for ($i = mysql_num_rows($resultado) - 1; $i >= 0; $i--) {
if (!mysql_data_seek($resultado, $i)) {
echo "No se encuenta la fila $i: " . mysql_error() . "\n";
continue;
}
if (!($fila = mysql_fetch_assoc($resultado))) {
continue;
}
echo $fila['apellido'] . ' ' . $fila['nombre'] . "<br />\n";
}
mysql_free_result($resultado);
?>
Nota:
La función mysql_data_seek() puede ser usada solamente junto con mysql_query(), y no con mysql_unbuffered_query().