Listado completo de tutoriales

Temario del Tutorial21 - Listado (selección de registros de una tabla)


Para recuperar datos desde MySQL o MariaDB debemos emplear el comando select:

  select codigo,nombre,mail,codigocurso from alumnos

Debemos pasar desde PHP un string con este comando para que MySQL lo ejecute y retorne todas las filas de la tabla alumnos.

Veremos entonces como recuperar los datos almacenados en la tabla alumnos de la base de datos "base1".

El programa que muestra los registros en una página es:

pagina1.php

<html>

<head>
  <title>Problema</title>
</head>

<body>

  <?php
  $conexion = mysqli_connect("localhost", "root", "", "base1") or
    die("Problemas con la conexión");

  $registros = mysqli_query($conexion, "select codigo,nombre,mail,codigocurso
                        from alumnos") or
    die("Problemas en el select:" . mysqli_error($conexion));

  while ($reg = mysqli_fetch_array($registros)) {
    echo "Codigo:" . $reg['codigo'] . "<br>";
    echo "Nombre:" . $reg['nombre'] . "<br>";
    echo "Mail:" . $reg['mail'] . "<br>";
    echo "Curso:";
    switch ($reg['codigocurso']) {
      case 1:
        echo "PHP";
        break;
      case 2:
        echo "ASP";
        break;
      case 3:
        echo "JSP";
        break;
    }
    echo "<br>";
    echo "<hr>";
  }

  mysqli_close($conexion);
  ?>

</body>

</html>

La primer parte es similar a lo visto hasta ahora, es decir nos conectamos con el servidor de base de datos y seleccionamos la base de datos base1:

  $conexion = mysqli_connect("localhost", "root", "", "base1") or
    die("Problemas con la conexión");

El comando SQL que nos permite recuperar datos de tablas se llama SELECT. Indicamos los campos a rescatar de la tabla y luego de la palabra clave from indicamos el nombre de la tabla:

  $registros = mysqli_query($conexion, "select codigo,nombre,mail,codigocurso
                        from alumnos") or
    die("Problemas en el select:" . mysqli_error($conexion));

En caso de haber codificado incorrectamente, el comando SQL select la función mysqli_query retorna false, por lo que se ejecuta el comando siguiente al operador or, es decir la función die.

Si el comando SQL es correcto, en la variable $registros se almacena una referencia a los datos rescatados de la tabla alumnos. Ahora debemos ir mostrando registro a registro los datos extraídos:

  while ($reg = mysqli_fetch_array($registros)) {

Para rescatar registro a registro los datos obtenidos por el select debemos llamar a la función mysqli_fetch_array. Esta función retorna un vector asociativo con los datos del registro rescatado, o false en caso de no haber más registros. Es decir que si retorna un registro se almacena en el vector $reg y la condición del while se valida como verdadero y pasa a ejecutarse el bloque del while:

    echo "Codigo:" . $reg['codigo'] . "<br>";
    echo "Nombre:" . $reg['nombre'] . "<br>";
    echo "Mail:" . $reg['mail'] . "<br>";
    echo "Curso:";
    switch ($reg['codigocurso']) {
      case 1:
        echo "PHP";
        break;
      case 2:
        echo "ASP";
        break;
      case 3:
        echo "JSP";
        break;
    }
    echo "<br>";
    echo "<hr>";
  }

El bloque del while muestra el contenido del registro rescatado por la función mysqli_fetch_array. Como vemos, para rescatar cada campo accedemos mediante el vector asociativo $reg indicando como subíndice un campo contenido en el select:$reg['codigo']

Cada vez que llamamos a la función mysqli_fetch_array nos retorna el siguiente registro.

Cuando debemos mostrar el curso mediante la instrucción switch, analizamos si tiene un 1,2 ó 3 y procedemos a mostrar el nombre del curso.

Para separar cada alumno en la página HTML disponemos el elemento "<hr>"



Problema resuelto.

Copiar el contenido de este cuadro de texto al VS Code y almacenarlo en la carpeta c:\xampp\htdocs con un nombre con extensión php.
luego abrir el navegador (Chrome, FireFox, IExplorer etc.) y en la barra de direcciones tipear:
http://localhost/pagina1.php (o el nombre del archivo que le dió)

pagina1.php

Ejecutar ejemplo

Problema propuesto.

Confeccionar un programa que recupere los datos de la tabla cursos de la base de datos base1. Mostrar el código de curso y su nombre.
Solución
pagina1.php

Ejecutar ejemplo

Retornar