Consulta mediante las instr ODBC a dos tablas

Vane
17 de Febrero del 2004
Consulta
tengo que hacer una consulta sobre dos tablas (Alumnos(codCarrera, nombreAlu, Apellido), Carreras(codCarrera, nombreCarrera, etc)de la siguuiente manera; me mandan en una variable el "nombre de la carrera" y tengo que mostrar todos los alumnos que pertenecen a esa carrera, el problema es que en la tabla de alumnos solo tengo el codigo de la carrera pero no el nombre ¿como hago
lo hice pero me da error
$consulta = "SELECT * FROM Alumnos Carreras where
((Carreras.nombre ='".$NombreCa."') And (Carreras.codigo = Alumnos.codigo))" ;
$id_resu = odbc_exec($conec, $consulta);
No anda¡¡¡

Mikel
17 de Febrero del 2004
En principio la condición tiene que ser la que a continuación te mando:

SELECT Alumnos.*
FROM Alumnos, Carreras
WHERE Carreras.nombreCarrera = ".$NombreCa." AND Carreras.codCarrera = Alumnos.codCarrera

El fallo en tu instrucción es que estes igualando el codigo de carrera de la tabla carreras con el codigo de alumno de la tabla alumnos, en vez de igualarlo a la columna codigo de carrera alumnos.

Haz la prueba. Si sigue sin funcionarte si quieres mandame un mensaje a mi correo especificando completamente el nombre de cada columna, etc., así como de que BD se trata (Sql Server, Oracle, Access, ...) e intentare ayudarte.

Saludos desde Euskal Herria.

Mikel

vane
17 de Febrero del 2004
Hola Mike desde ya muchas gracias por contestar, lo que me dijiste es exactamente lo que habia puesto lo que pasa que al escribir lo puse sin los nombre exacto; te cuento que las tablas las tengo en Acces y el codigo es el siguiente
<html>
<head>

<?
function ArmoTabla($carreras)
{
/* Se accede a una Base de Datos mediante un DSN
denominado facultadesEjer2 sin identificación de usuario y clave */
$conec = odbc_connect("facultadesEjer2", "", "");
$consulta = "SELECT * FROM Alumnos Carreras where
((Carreras.nombre ='".$carreras."') And (Carreras.codigo = Alumnos.codigo))" ;

$id_resu = odbc_exec($conec, $consulta);


//esto no va
//$id_resu = odbc_prepare($conec, $consulta);
//$resu = odbc_execute($id_resu);

echo "<table border="3">";

$indice=1;
?>

<tr>
<td align="center">Nombre </b></td>
<td align="center"> Apellido </td>

</tr>


<?
$hayFilas = odbc_fetch_row($id_resu);
while ($hayFilas > 0)
{
$nom = odbc_result($id_resu,"nombre");
$ape= odbc_result($id_resu,"apellido");

echo "<tr>";
echo "<td align="center"> <b> $nom </b></td>";
echo "<td align="center"> $ape </td>";

echo "</tr>";
$indice++;
$hayFilas = odbc_fetch_row($id_resu);
}
echo "</table>";
}
?>
</head>
<body>
<h1>Los alumnos que estan en la carrera <? echo "$carreras ";?> son:
</h1>
<?
//carreras me da el nombre de la carrera que quiero buscar
echo "$carreras ";
ArmoTabla($carreras);

?>
</body>
</html>