Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ayuda soy nuevo

Estas en el tema de Ayuda soy nuevo en el foro de Mysql en Foros del Web. Hola. Primero que todo les comento que soy nuevo en este mundo .php y tego un conocimiento medio. Bueno lo que estoy haciendo es una ...
  #1 (permalink)  
Antiguo 26/12/2009, 16:05
 
Fecha de Ingreso: diciembre-2009
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Ayuda soy nuevo

Hola.

Primero que todo les comento que soy nuevo en este mundo .php y tego un conocimiento medio.

Bueno lo que estoy haciendo es una busqueda en varias tablas (estudiantes, profesores, otras instituciones y egresados) "todos con un campo id, cedula y nombre" pero al momento de realizar esta busqueda el listado me arroja muchos resultados q no entiendo y me gustaria que sin importar de que tabla provengan me mostrara solamente el nombre, cedula y la tabla de donde salio... algo asi como "
Introduzca cedula: | 17957012 |

RESULTADO:

id Cedula Nombre Tipo de usuario
14 17957012 Rosanny Egresado

<?php

include "../conectar.php";

if (!isset($buscar_cota)){

echo "Debe especificar una letra a buscar";

echo "<p>Debe especificar una leyta a buscar</p> \n";
echo "<p><a href=1o.php>Volver a la busqueda</p> \n";

echo "</html></body> \n";

exit;

}

//este ejemplo es para solo 2 tablas que estuve haciendo... SI NO PUEDO CON 2 MENOS CON 4

$sql = "SELECT estudiantes.cedula, estudiantes.nombre, profesores.cedula, profesores.nombres
FROM estudiantes, profesores
WHERE estudiantes.cedula LIKE '%$buscar_cota%' OR profesores.cedula LIKE '%$buscar_cota%'";

$result = mysql_query($sql, $link);

if ($row = mysql_fetch_array($result)){

echo "<table border = '1' align='center'> \n";

//Mostramos los nombres de las tablas

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>";


}

?>

Cuando realizo una busqueda con la cedula 17957012 me lo deberia de buscar en las tablas profesores y estudiantes....

Vale recalcar que en ambas tablas aparece dicho dato.

En estudiantes aparece como "17957012 Rosanny"

Y en profesores aparece como "17957012 rosanny"


Este es el resultado que me arroja... y bueno algunos datos son solo de prueba...


Volver a la busqueda

cedula estudiante nombre estudiante cedula prof nombre prof
17957012 Rosanny 11 11
17957012 Rosanny 1 0
17957012 Rosanny 101 1
258 258 17957012 rosanny
31 3 17957012 rosanny
346563 2 17957012 rosanny
23456 2 17957012 rosanny
9999 nombre 17957012 rosanny
12 1 17957012 rosanny
12 1 17957012 rosanny
20097247 Jose t 17957012 rosanny
17957012 Rosanny 17957012 rosanny
12 66 17957012 rosanny
17957012 Rosanny 56757 5765
17957012 Rosanny 2147483647 2
17957012 Rosanny 6789 789
17957012 Rosanny 22 2
17957012 Rosanny 82 2
17957012 Rosanny 2 2


Mi mayor problema es el hecho de que no c como seleccionar el nombre del resultado y escribirlo en un echo "..." porq no se de que tabla va a provenir, ademas los datos se repiten de una manera que no entiendo.

Si alguien sabe hacerlo se lo agradeceria muchisimo...

Gracias de antemano...
  #2 (permalink)  
Antiguo 27/12/2009, 07:48
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda soy nuevo

creo que tu problema si está en la consulta pero con tanto codigo php ni me puedo concentrar en el problema.
Te recomiendo plantees mejor tu pregunta resaltando el problema que tienes solo con la consulta. No pongas codigo php, solo SQL.

Recuerda esto
http://www.forosdelweb.com/f21/funci...-datos-413499/

Después miras la forma de adaptar la consulta al lenguaje.

saludos magman
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 28/12/2009, 06:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ayuda soy nuevo

Un par de preguntas magman,
1) ¿esas tablas de profesores y alumnos no están relacionadas entre sí, verdad?
2) ¿un alumno puede ser a la vez profesor?
Deberías usar UNION ALL. He quitado la mayor parte del código PHP. He dejado sólo la variable.
(SELECT 'estudiante' as tipo, estudiantes.cedula, estudiantes.nombre
FROM estudiantes
WHERE estudiantes.cedula LIKE '%{$buscar_cota}%')
UNION ALL
(SELECT 'profesor', profesores.cedula, profesores.nombre
FROM profesores
WHERE profesores.cedula LIKE '%{$buscar_cota}%')

Si un alumno no puede ser profesor a la vez, puedes usar UNION sin ALL para evitar repeticiones.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:37.