Consulta (selección de registros de una tabla)


El proceso de consulta de datos de una tabla es similar al del listado, la diferencia es que se muestra sólo aquel que cumple la condición por la que buscamos.
Haremos un programa que nos permita consultar los datos de un alumno ingresando su mail para su búsqueda. Tengamos en cuenta que no puede haber dos alumnos con el mismo mail, por lo que la consulta nos puede arrojar uno o ningún registro.
Debemos codificar un formulario para el ingreso del mail a consultar:

<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php" method="post">
Ingrese el mail del alumno a consultar:
<input type="text" name="mail">
<br>
<input type="submit" value="buscar">
</form>
</body>
</html>
 
Por otro lado tenemos el archivo "pagina2.php" que se encarga de buscar el mail ingresado en el formulario:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","") or 
  die("Problemas en la conexion");

mysql_select_db("base1",$conexion) or
  die("Problemas en la selección de la base de datos");

$registros=mysql_query("select codigo,nombre, codigocurso
                       from alumnos where mail='$_REQUEST[mail]'",$conexion) or
  die("Problemas en el select:".mysql_error());

if ($reg=mysql_fetch_array($registros))
{
  echo "Nombre:".$reg['nombre']."<br>";
  echo "Curso:";
  switch ($reg['codigocurso']) {
     case 1:echo "PHP";
            break;
     case 2:echo "ASP";
            break;
     case 3:echo "JSP";
            break;
  }
}
else
{
  echo "No existe un alumno con ese mail.";
}
mysql_close($conexion);
?>
</body>
</html> 
Lo más importante está en el comando select:
$registros=mysql_query("select codigo,nombre, codigocurso
                       from alumnos where mail='$_REQUEST[mail]'",$conexion) or
  die("Problemas en el select:".mysql_error());
Acá es donde con la clausula where seleccionamos sólo el registro que cumple con la condición que el mail sea igual al que ingresamos.
Como sólo puede haber un registro que cumpla la condición, llamamos a la función mysql_fetch_array en un if:
if ($reg=mysql_fetch_array($registros))
En caso de retornar un vector asociativo la condición del if se verifica como verdadera y pasa a mostrar los datos, en caso de retornar false se ejecuta el else.