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...
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 de Jorge Vila
1