SoloCodigo

Bases de Datos => MySQL => Mensaje iniciado por: gambitodx en Martes 3 de Mayo de 2011, 04:08

Título: BUSCADOR CON PHP Y MYSQL CON 2 TABLAS DIFERENTES - Alumno -C
Publicado por: gambitodx en Martes 3 de Mayo de 2011, 04:08
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
  1.  
  2.  
  3. <html>
  4. <head>
  5. <title>Buscador simple en PHP</title>
  6. </head>
  7. <body>
  8. <form action="busprueba.php" method="post">
  9. Buscar: <input name="palabra">
  10. <input type="submit" name="buscador" value="Buscar">
  11. </form>
  12. <div align="left">
  13.   <?
  14. if ($_POST['buscador'])
  15. {
  16. // Tomamos el valor ingresado
  17. $buscar = $_POST['palabra'];
  18.  
  19. // Si está vacío, lo informamos, sino realizamos la búsqueda
  20. if(empty($buscar))
  21. {
  22. echo "No se ha ingresado una cadena a buscar";
  23. }else{
  24.  
  25.  
  26. // Conexión a la base de datos y seleccion de registros
  27. $con=mysql_connect("localhost","root","mysql");
  28. $sql = "SELECT * FROM alumnos WHERE nombre like '%$buscar' ORDER BY id_alumno DESC";
  29. mysql_select_db("bdatos_tomas", $con);
  30.  
  31.  
  32.  
  33. $result = mysql_query($sql, $con);
  34.  
  35.  
  36. // Tomamos el total de los resultados
  37. $total = mysql_num_rows($result);
  38.  
  39. // Imprimimos los resultados
  40. if ($row = mysql_fetch_array($result)){
  41. echo "Resultados para: <b>$buscar</b>";
  42. do {
  43. ?>
  44.  
  45.  
  46.   <table width="729" border="1">
  47.     <tr>
  48.       <td width="30" height="26">id</td>
  49.       <td width="184">nombre y apellido</td>
  50.       <td width="121">direccion</td>
  51.       <td width="61">Parcial 1 </td>
  52.       <td width="67">Parcial 2</td>
  53.       <td width="65">Parcial 3</td>
  54.       <td width="59">Promedio</td>
  55.       <td width="90">Condicion</td>
  56.     </tr>
  57.     <tr>
  58.       <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
  59.         <?=$row['id_alumno'];?>
  60.       </a></b></td>
  61.       <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
  62.         <?=$row['nombre'];?>
  63.       </a></b></td>
  64.       <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
  65.         <?=$row['direccion'];?>
  66.       </a></b></td>
  67.       <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
  68.         <?=$row['parcial1'];?>
  69.       </a></b></td>
  70.       <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
  71.         <?=$row['paricial2'];?>
  72.       </a></b></td>
  73.       <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
  74.         <?=$row['paricial3'];?>
  75.       </a></b></td>
  76.       <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
  77.         <?=$row['promedio'];?>
  78.       </a></b></td>
  79.       <td><b><a href="busprueba.php?id=<?=$row['id_alumno'];?>">
  80.         <?=$row['condicion'];?>
  81.       </a></b></td>
  82.     </tr>
  83.   </table>
  84. </div>
  85. <p> </p>
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94. <?
  95. } while ($row = mysql_fetch_array($result));
  96. echo "<p>Resultados: $total</p>";
  97. } else {
  98.  
  99.  
  100. // En caso de no encontrar resultados
  101. echo "No se encontraron resultados para: <b>$buscar</b>";
  102. }
  103. }
  104. }
  105. ?>
  106.  
  107.   
  108.  
  109.  
  110.  
Título: Re: BUSCADOR CON PHP Y MYSQL CON 2 TABLAS DIFERENTES - Alumno -C
Publicado por: alexg88 en Martes 3 de Mayo de 2011, 16:36
Es imposible que te muestre esos datos si no realizas una consulta sobre la tabla calificaciones.

Código: SQL
  1. SELECT * FROM alumnos WHERE nombre LIKE '%$buscar' ORDER BY id_alumno DESC
  2.  

Aquí sólo estas realizando una consulta sobre la tabla alumnos.

Código: SQL
  1. SELECT * FROM alumnos NATURAL INNER JOIN calificaciones WHERE nombre LIKE '%$buscar' ORDER BY id_alumno DESC
  2.  

Ahora si tienes los datos de las dos tablas.

Espero que te sirva y pregúntame si tienes dudas.
Título: Re: BUSCADOR CON PHP Y MYSQL CON 2 TABLAS DIFERENTES - Alumno -C
Publicado por: gambitodx en Miércoles 4 de Mayo de 2011, 02:01
Cita de: "alexg88"
Es imposible que te muestre esos datos si no realizas una consulta sobre la tabla calificaciones.

Código: SQL
  1. SELECT * FROM alumnos WHERE nombre LIKE '%$buscar' ORDER BY id_alumno DESC
  2.  

Aquí sólo estas realizando una consulta sobre la tabla alumnos.

Código: SQL
  1. SELECT * FROM alumnos NATURAL INNER JOIN calificaciones WHERE nombre LIKE '%$buscar' ORDER BY id_alumno DESC
  2.  

Ahora si tienes los datos de las dos tablas.

Espero que te sirva y pregúntame si tienes dudas.



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
Título: Re: BUSCADOR CON PHP Y MYSQL CON 2 TABLAS DIFERENTES - Alumno -C
Publicado por: alexg88 en Miércoles 4 de Mayo de 2011, 09:22
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.
Título: Re: BUSCADOR CON PHP Y MYSQL CON 2 TABLAS DIFERENTES - Alumno -C
Publicado por: gambitodx en Viernes 13 de Mayo de 2011, 20:35
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.


GRACIAS CIBERT AMIGO alexg88 ME FUNCIONA PERFECTO.... MIL GRACIAS NOS VEMOS... :D