Temas > Programacion > Php > INNER JOIN Seleccion de registros de varias tablas
Julio

INNER JOIN - Selección de registros de varias tablas en php
Ahora veremos como imprimir todos los alumnos inscritos a los
cursos junto al nombre del curso donde está inscripto. Los datos se 
encuentran en las tablas "alumnos" y "cursos".
Debemos aparear el código de curso de la tabla "alumnos" con el 
código de la tabla "cursos". El código del programa que hace esto 
es el siguiente:
<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:
<?php
$registros=mysql_query("select alu.codigo as codigo,nombre,mail,
codigocurso, nombrecur from alumnos as alu
?>
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:
<?php
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>";
}
?>













¿Has olviado tu contraseña?

Pulsa aquí para registrate




Google






LunMarMieJueVieSabDom
    123
45678910
11121314151617
181920 21222324
252627282930 

Jueves 21 de Noviembre 2024
Semana 47

..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal