Búsqueda varias tablas

Hola.
Primero que todo les comento que soy nuevo en este mundo .php y tengo un conocimiento medio.
Bueno lo que estoy haciendo es una búsqueda en varias tablas (estudiantes, profesores, otras instituciones y egresados) "todos con un campo id, cedula y nombre" pero al momento de realizar esta búsqueda el listado me arroja muchos resultados que no entiendo y me gustaría que sin importar de que tabla provengan me mostrara solamente el nombre, cedula y la tabla de donde salio o algo así como "
Introduzca cedula:  | 1234567 |
RESULTADO:
id<span style="white-space: pre;"> </span>Cedula<span style="white-space: pre;"> </span>Nombre<span style="white-space: pre;"> </span>Tipo de usuario
1<span style="white-space: pre;"> </span>1234567<span style="white-space: pre;"> </span>Jose P<span style="white-space: pre;"> </span>Egresado
<?php
include "../conectar.php";
if (!isset($buscar)){
echo "Debe especificar una letra a buscar";
echo "
<p>Debe especificar una letra a buscar</p>
\n";
echo "
<p><a href=1.php>Volver a la busqueda</p>
\n";
echo "
</html>
</body>
\n";
exit;
}
// consulta ah mejorar
$sql = "SELECT estudiantes.cedula, estudiantes.nombre, profesores.cedula, profesores.nombre, egresados.cedula, egresados.nombre, otras_instituciones.cedula, otras_instituciones.nombre
FROM estudiantes, profesores, egresados, otras_instituciones
WHERE estudiantes.cedula LIKE '%$buscar%' OR profesores.cedula LIKE '%$buscar%' OR egresados.cedula LIKE '%$buscar%' OR otras_instituciones.cedula LIKE '%$buscar%'";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
echo "
<table border = '1' align='center'>
\n";
//Mostramos los primeros resultados solo como prueba
echo "
<tr>
\n";
echo "
<td><strong>cedula estudiante</strong></td>
\n";
echo "
<td><strong>nombre estudiante</strong></td>
\n";
echo "
<td><strong>cedula prof</strong></td>
\n";
echo "
<td><strong>nombre prof</strong></td>
\n";
echo "
</tr>
\n";
do {
echo "
<tr>
\n";
echo "
<td>".$row["0"]."</td>
\n";
echo "
<td>".$row["1"]."</td>
\n";
echo "
<td>".$row["2"]."</td>
\n";
echo "
<td>".$row["3"]."</td>
\n";
echo "
</tr>
\n";
} while ($row = mysql_fetch_array($result));
echo "
<p><a href=1.php>Volver a la busqueda</p>
\n";
echo "
</table>
\n";
} else {
echo "
<script language='javascript'>  alert('No se encontraron resultados');location.href='1.php';</script>
";
}
?>
Si alguien sabe hacerlo se lo agradecería muchísimo...
Gracias de antemano...

1 respuesta

Respuesta
1
Para que no te salga un maremoto de resultados, que es como te aparecerá ahora, debes de relacionar las tablas entre si, es decir, que haya campos que se relacionen entre las tablas.
Si no te aclatras, construye tu BD en Access y comprueba los resultados, pero realizando una gestión correcta de las relaciones.
Tu consulta busca prácticamente todo porque no encuentra coherencia entre las tablas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas