Bases de Datos > MySQL
BUSCADOR CON PHP Y MYSQL CON 2 TABLAS DIFERENTES - Alumno -C
(1/1)
gambitodx:
hola de nuevo gente, una consulta estoy haciendo un buscador en php y mysql ejemplo:
base de datos: bdatos_tomas
tengo dos tablas:
1.- alumnos (id_alumno, nombre, fecha_nac, direccion, telefono) y
2.-calificaciones (id_cal, parcial1, parcial2, parcial3, promedio, condicion, id_alumno)
Mi consulta es la siguiente:
e diseñado un formulario en php, donde tengo un campo de texto y un boton-"buscar".
Cuando ingreso el id_alumno del estudiante en la campo de texto y pulso en boton "BUSCAR "me busque el (id_alumno, nombre, direccion, parcial1, parcial2, parcial3, promedio, condicion.)
pues el buscador, tienes que extraer de dos tablas diferente, los registro.
Con una tabla no tengo problemas, ya que me busca el id_alumno y la direccion. Mas no el parcial1 parcial 2, parcial3, promedio, condicion.
base de datos: bdatos_tomas
------------------------------------------------
alumnos + calificaciones
------------------------------------------------
+
id_alumno * + id_calificacion
nombre + parcial1
direccion + parcial2
............ + parcial3
............. + promedio
............. + condicion
.............. + * id_alumno
--------------------------------------------------
en una pagina hecho en "resultado.php" me muestre el siguiente ejemplo:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
id_alumno + nombre + direccion + pacial1 + parcial2 + parcial 3 + promedio + condicion
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
001 + genaro + calle 10 + 20 + 18 + 19 + 19 + aprobado
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Pues solo me muestra como esto, sin parcial1, parcial2, parcial3, promedio, condicion que pertenecen a la tabla calificaciones:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
id_alumno + nombre + direccion + pacial1 + parcial2 + parcial 3 + promedio + condicion
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
001 + genaro + calle 10 + .......... + ........... + ........... +..............+................. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gracia por ante mano gente del foro soloCodigos :good:
Bueno aqui dejo el codigo php:
--- Código: PHP --- <html><head><title>Buscador simple en PHP</title></head><body><form action="busprueba.php" method="post">Buscar: <input name="palabra"><input type="submit" name="buscador" value="Buscar"></form><div align="left"> <?if ($_POST['buscador']){// Tomamos el valor ingresado$buscar = $_POST['palabra']; // Si está vacío, lo informamos, sino realizamos la búsquedaif(empty($buscar)){echo "No se ha ingresado una cadena a buscar";}else{ // Conexión a la base de datos y seleccion de registros$con=mysql_connect("localhost","root","mysql");$sql = "SELECT * FROM alumnos WHERE nombre like '%$buscar' ORDER BY id_alumno DESC";mysql_select_db("bdatos_tomas", $con); $result = mysql_query($sql, $con); // Tomamos el total de los resultados$total = mysql_num_rows($result); // Imprimimos los resultadosif ($row = mysql_fetch_array($result)){echo "Resultados para: <b>$buscar</b>";do {?> <table width="729" border="1"> <tr> <td width="30" height="26">id</td> <td width="184">nombre y apellido</td> <td width="121">direccion</td> <td width="61">Parcial 1 </td> <td width="67">Parcial 2</td> <td width="65">Parcial 3</td> <td width="59">Promedio</td> <td width="90">Condicion</td> </tr> <tr> <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>"> <?=$row['id_alumno'];?> </a></b></td> <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>"> <?=$row['nombre'];?> </a></b></td> <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>"> <?=$row['direccion'];?> </a></b></td> <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>"> <?=$row['parcial1'];?> </a></b></td> <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>"> <?=$row['paricial2'];?> </a></b></td> <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>"> <?=$row['paricial3'];?> </a></b></td> <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>"> <?=$row['promedio'];?> </a></b></td> <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>"> <?=$row['condicion'];?> </a></b></td> </tr> </table></div><p> </p> <?} while ($row = mysql_fetch_array($result));echo "<p>Resultados: $total</p>";} else { // En caso de no encontrar resultadosecho "No se encontraron resultados para: <b>$buscar</b>";}}}?>
alexg88:
Es imposible que te muestre esos datos si no realizas una consulta sobre la tabla calificaciones.
--- Código: SQL ---SELECT * FROM alumnos WHERE nombre LIKE '%$buscar' ORDER BY id_alumno DESC
Aquí sólo estas realizando una consulta sobre la tabla alumnos.
--- Código: SQL ---SELECT * FROM alumnos NATURAL INNER JOIN calificaciones WHERE nombre LIKE '%$buscar' ORDER BY id_alumno DESC
Ahora si tienes los datos de las dos tablas.
Espero que te sirva y pregúntame si tienes dudas.
gambitodx:
--- Cita de: "alexg88" ---Es imposible que te muestre esos datos si no realizas una consulta sobre la tabla calificaciones.
--- Código: SQL ---SELECT * FROM alumnos WHERE nombre LIKE '%$buscar' ORDER BY id_alumno DESC
Aquí sólo estas realizando una consulta sobre la tabla alumnos.
--- Código: SQL ---SELECT * FROM alumnos NATURAL INNER JOIN calificaciones WHERE nombre LIKE '%$buscar' ORDER BY id_alumno DESC
Ahora si tienes los datos de las dos tablas.
Espero que te sirva y pregúntame si tienes dudas.
--- Fin de la cita ---
hola cibert amigo ahora tengo un pequeño problemilla al modificar la consulta me sale sale error: gracias por la molestia :rolleyes: espero me que ayudes a solucionar ;)
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in busprueba.php on line 35
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in busprueba.php on line 38
No se encontraron resultados para: manuel
alexg88:
Cambia NATURAL INNER JOIN por NATURAL JOIN
Es que dependiendo de la base de datos es una u otra y en MySQL es de la segunda forma.
A ver si con eso se soluciona.
gambitodx:
--- Cita de: "alexg88" ---Cambia NATURAL INNER JOIN por NATURAL JOIN
Es que dependiendo de la base de datos es una u otra y en MySQL es de la segunda forma.
A ver si con eso se soluciona.
--- Fin de la cita ---
GRACIAS CIBERT AMIGO alexg88 ME FUNCIONA PERFECTO.... MIL GRACIAS NOS VEMOS... :D
Navegación
Ir a la versión completa