<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","z80") or
die("Problemas en la conexion");
mysql_select_db("phpfacil",$conexion) or
die("Problemas en la selección de la base de datos");
$registros=mysql_query("select alu.codigo as codigo,nombre,mail,codigocurso,
nombrecur
from alumnos as alu
inner join cursos as cur on cur.codigo=alu.codigocurso",
$conexion) or
die("Problemas en el select:".mysql_error());
while ($reg=mysql_fetch_array($registros))
{
echo "Codigo:".$reg['codigo']."<br>";
echo "Nombre:".$reg['nombre']."<br>";
echo "Mail:".$reg['mail']."<br>";
echo "Curso:".$reg['nombrecur']."<br>";
echo "<hr>";
}
mysql_close($conexion);
?>
</body>
</html>
Hay varias cosas nuevas cuya sintaxis necesitamos analizar, la primera es como hacer el apareo con la tabla cursos:
inner join cursos as cur on cur.codigo=alu.codigocurso",
Luego de las palabras claves inner join, indicamos la tabla que necesitamos aparear, podemos crear un alias de una palabra mediante la palabra clave as. En el resto de la consulta, en vez de indicar el nombre de la tabla, hacemos referencia al alias(generalmente un nombre más corto).
Seguidamente de la palabra clave on, indicamos los campos por los que apareamos las tablas, en nuestro caso el codigo de la tabla cursos con el codigocur de la tabla alumnos.
Otro punto a tener en cuenta es indicar en el select qué campos debemos rescatar de las tablas, es decir, indicarle a qué tabla pertenece en el caso que tengan el mismo nombre:
$registros=mysql_query("select alu.codigo as codigo,nombre,mail,codigocurso, nombrecur
from alumnos as alu inner join cursos as cur on cur.codigo=alu.codigocurso",$conexion)
En este caso rescatamos el código del alumno (y no el código de curso). Debemos crear un alias si dos tablas tienen el mismo nombre de campo para evitar confusión; como ocurre aquí con el campo codigo de las tablas alumnos y cursos.
También creamos un alias para la tabla alumnos.
Cuando rescatamos los datos y los mostramos en la página, hacemos referencia al alias del campo:
while ($reg=mysql_fetch_array($registros))
{
echo "Codigo:".$reg['codigo']."<br>";
echo "Nombre:".$reg['nombre']."<br>";
echo "Mail:".$reg['mail']."<br>";
echo "Curso:".$reg['nombrecur']."<br>";
echo "<hr>";
}
|