¿Cómo obtengo los registros anterior y posterior de consultas MySQL dentro de PHP?

Escrito por mark stansberry | Traducido por beatriz sánchez
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
¿Cómo obtengo los registros anterior y posterior de consultas MySQL dentro de PHP?
Usa PHP para encontrar de forma electrónica las entradas de registro anteriores y posteriores en tu base de datos MySQL. (Thinkstock/Comstock/Getty Images)

Los registros de las bases de datos MySQL se graban en filas de campos. Luego se les asigna un número de índice cuando se colocan en la base de datos. Cuando los registros son eliminados, todo el registro, incluyendo su número de índice, se borra. Cuando solicites el siguiente registro usando el número de índice, no sabrás si el registro fue eliminado. Esto significa que para conseguir el registro anterior o el siguiente deberás ordenar la base de datos por número de índice y después obtener los registros que están justo antes o después.

Otras personas están leyendo

Necesitarás

  • Un servicio de alojamiento web con soporte para MySQL PHP

Lista completaMinimizar

Instrucciones

  1. 1

    Introduce en tu archivo de texto PHP el código de la función MySQL PHP para conectar con una tabla de base de datos MySQL que tenga al menos 5 registros en ella y 2 campos. Asegúrate de que uno de los campos de la tabla de base de datos MySQL esté configurada como clave primaria (un campo índice que genera y almacena automáticamente un número de identificación de registro). Para este ejemplo, usa una tabla de base de datos MySQL llamada "Products:" con un campo de clave primaria llamado "Index" en un campo de cadena (VARCHAR) llamado "Name". Usa una tabla de base de datos que ya tenga 5 registros.

  2. 2

    Escribe o copia y pega el código PHP con las consultas MySQL siguientes después de sentencia de conexión MySQL en tu archivo PHP para decir a PHP que:

    Recupera todos los registros de la base de datos de productos que tienen un número de índice menor que 3. Ordena los registros encontrados por el número de índice en orden descendente. Selecciona el primer registro en la base de datos MySQL, el registro con un índice igual a 2 o el registro antes del registro 3. Muestra el número de índice del registro anterior y los contenidos del campo de nombre en la pantalla.

    $currentRec = 3; $sql = "SELECT product.index, name FROM product WHERE product.index < $currentRec ORDER BY product.index DESC LIMIT 1"; $res = mysqli_query($mysqli, $sql); if ($res) { while ($newArray = mysqli_fetch_array($res, MYSQLI_ASSOC)) { $id = $newArray['index']; $testField = $newArray['name']; echo " El número de índice del registro anterior es ".$id." y el nombre del HAT es ".$testField. " y y el número de índice del registro actual es ".$currentRec."<br/>"; };

    };

  3. 3

    Empezando en la siguiente línea en tu archivo de texto PHP, escribe o copia y pega el siguiente código:

    Recupera todos los registros en la base de datos de productos que tienen un número de índice "mayor que" 3. Ordena los registros en orden ascendente. Selecciona el primer registro en la base de datos MySQL, el registro que tiene el índice igual a 4 o el registro después del registro 3. Muestra el número de índice del siguiente registro y los contenidos del campo de nombre en la pantalla.

    $sql = "SELECT product.index, name FROM product WHERE product.index > $currentRec ORDER BY product.index ASC LIMIT 1"; $res = mysqli_query($mysqli, $sql); if ($res) { while ($newArray = mysqli_fetch_array($res, MYSQLI_ASSOC)) { $id = $newArray['index']; $testField = $newArray['name']; echo " El número del registro de índice siguiente es ".$id." y el nombre del HAT es ".$testField. " y el número de índice del registro actual es ".$currentRec."<br/>"; }; };

    mysqli_free_result($res); mysqli_close($mysqli); };

  4. 4

    Guarda tu archivo PHP y pega la URL en el navegador donde guardaste tu archivo PHP y después revisa los resultados en tu página web.

Consejos y advertencias

  • La consulta SELECT de MySQL usada para encontrar el registro anterior en este código de ejemplo tiene una forma de sintaxis general con:
  • un argumento de SELECT que indica el nombre del campo que buscar
  • un argumento de FROM que indica el nombre de la tabla de base de datos que buscar
  • un argumento de WHERE que indica la selección para recuperar los registros que tienen un número de registro menor que el número de índice que indiques en el valor de $currentRec
  • un argumento ORDER que ordene los registros en orden descendiente (DESC)
  • un argumento LIMIT que limite el resultado de la selección al primer registro en la tabla de base de datos que has seleccionado y ordenado (LIMIT 1)
  • Una forma general para esta función se puede expresar como
  • SELECT idindex FROM tableselected WHERE idindex < $currentRecordIndexNumber ORDER BY idindex DESC LIMIT 1
  • La siguiente consulta de registro tiene la misma forma general pero usa ASC para el ascendente y el signo mayor que para encontrar los registros mayores que el índice del registro.

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles