Foros del Web » Programando para Internet » PHP »

Realizar consulta

Estas en el tema de Realizar consulta en el foro de PHP en Foros del Web. hola a todos quisiera ver como es posible realizar una consulta con dos tablas, en una tabla tengo todos los valores capturados y en otra ...
  #1 (permalink)  
Antiguo 22/03/2006, 08:05
Avatar de pkeñita  
Fecha de Ingreso: febrero-2006
Ubicación: Córdoba, Veracruz, México
Mensajes: 21
Antigüedad: 11 años, 9 meses
Puntos: 0
Realizar consulta

hola a todos quisiera ver como es posible realizar una consulta con dos tablas, en una tabla tengo todos los valores capturados y en otra tengo solo unos cuantos valores, las tablas estan relaciondas con una clave; ahora si quiero realizar una consulta en la tabla con todos los campos, por ejemplo busqueda de empleados por departamento y de todos los resultados coinciden tomar las claves de los empleados y luego realizar un join con la segunda tabla para mostrar los registros que coincidan con los resultados antes localizados. gracias por todo
__________________
Atentamente:
IBM & JAT
:-) SALUDOS :-)
  #2 (permalink)  
Antiguo 22/03/2006, 09:17
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Tu lo dijiste, haz un join.
Muestra tu estructura de tablas y un ejemplo de lo que quieres lograr para ayudarte mejor.
  #3 (permalink)  
Antiguo 22/03/2006, 09:40
Avatar de pkeñita  
Fecha de Ingreso: febrero-2006
Ubicación: Córdoba, Veracruz, México
Mensajes: 21
Antigüedad: 11 años, 9 meses
Puntos: 0
ok realizo una consulta mediante un formulario, en este hago una busqueda de las solicitues capturadas por ese empleado(cada solicitud tiene una clave) solicitud es mi tabla y trato de guardarlo en un array para despues compararlo. En $nusol guardo todas las claves que me resultaron en la consulta que coinciden con el numero de departamento

$ans=mysql_query("select * from solicitud where depto='$a_buscar'");
$depto=mysql_fetch_array($ans);
$nusol=$depto[0];

la otra tabla se llama solicitud2 y quiero hacer un join con los registros que coincidan en la clave de solicitud y solicitud2, he intentado esto pero no funciona; quisiera saber que estoy haciendo mal aparte de todo :$

$resultado=mysql_query("select * from solicitud join solicitud2 on (solicitud.num_sol='$nusol') == (solicitud2.num_sol='$nusol')",$enlace);
__________________
Atentamente:
IBM & JAT
:-) SALUDOS :-)
  #4 (permalink)  
Antiguo 22/03/2006, 11:22
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Prueba esto:

Código:
   //la lista de campos incluye campos de ambas tablas
   select lista_de_campos_a_mostrar from solicitud
   inner join solicitud2 on solicitud.num_sol=solicitud2.num_sol
   where solicitud.num_sol=$nusol
Como ves, no es necesario hacer 2 consultas.
  #5 (permalink)  
Antiguo 22/03/2006, 11:58
Avatar de pkeñita  
Fecha de Ingreso: febrero-2006
Ubicación: Córdoba, Veracruz, México
Mensajes: 21
Antigüedad: 11 años, 9 meses
Puntos: 0
ok ok muchas gracias :D te lo agradezco voy a probar (y)
__________________
Atentamente:
IBM & JAT
:-) SALUDOS :-)
  #6 (permalink)  
Antiguo 22/03/2006, 14:01
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 12 años, 4 meses
Puntos: 5
De acuerdo Entidades relacionadas

Hola pkeñita

Te explicare de manera rapida como trabajo yo cuando se me presenta esa situacion.
Cita:
*-------------------- SQL --------------
Base de datos : prueba
Tablas : ( algunos datos )

----- Suponiendo que tengamos estas tablas y algunos datos en ellas


CREATE TABLE tabla01 (
item tinyint(3) unsigned NOT NULL auto_increment,
nombre varchar(20) NOT NULL,
edad tinyint(4) NOT NULL,
PRIMARY KEY (`item`)
)


INSERT INTO tabla01 VALUES (1, 'Simon', 25);
INSERT INTO tabla01 VALUES (2, 'Alix', 23);



CREATE TABLE tabla02 (
codigo tinyint(3) unsigned NOT NULL auto_increment,
item tinyint(4) NOT NULL,
fecha date NOT NULL,
asistio varchar(2) NOT NULL,
PRIMARY KEY (`codigo`)
)


INSERT INTO tabla02 VALUES (1, 1, '2006-03-22', 'SI');
INSERT INTO tabla02 VALUES (2, 1, '2006-03-23', 'SI');
INSERT INTO tabla02 VALUES (3, 2, '2006-03-22', 'NO');
INSERT INTO tabla02 VALUES (4, 2, '2006-03-22', 'Si');
INSERT INTO tabla02 VALUES (5, 1, '2006-03-25', 'SI');
INSERT INTO tabla02 VALUES (6, 1, '2006-03-25', 'SI');
Nuestro archivo PHP
<< Suponiendo que recibimos una variable que es el ITEM de la tabla01 >>

Código PHP:
<?php
$conexion
=mysql_connect("localhost","USER ","PASS")or die("Error conexion");
$bd=mysql_select_db("prueba",$conexion)or die("no se encontro la BD");
$xvar1=1;
$xvar2=2;
///////   mi sentencia  SQL
$sql="SELECT a.item,a.nombre,b.fecha,b.asistio FROM tabla01 AS a,tabla02 AS b  WHERE a.item=b.item ORDER BY a.item";
$query=mysql_query($sql)or die("Error al ejecutar consulta ");
$n=mysql_num_rows($query);
if(
$n>0)
{
   while(
$campo=mysql_fetch_array($query))
    {
       echo 
"Item : ".$campo['item']."  -  ";
       echo 
"Nombre : ".$campo['nombre']."  -  ";
       echo 
"Fecha : ".$campo['fecha']."  -  ";
       echo 
"Asistencia : ".$campo['asistio']."<br>";

      
   }
}
else
{
    echo 
"No se tienen resultados para esta consulta ";
}
?>

El código debe funcionar ya que lo saqué desempolvando mi HDD

Salu2

__________________
. .: El mejor Inicio :. .
  #7 (permalink)  
Antiguo 23/03/2006, 08:11
Avatar de pkeñita  
Fecha de Ingreso: febrero-2006
Ubicación: Córdoba, Veracruz, México
Mensajes: 21
Antigüedad: 11 años, 9 meses
Puntos: 0
muchas gracias atak mmm apenas voy a empezar a trabajar en eso, lo checo y de ahi les aviso que onda ok xoxo
__________________
Atentamente:
IBM & JAT
:-) SALUDOS :-)
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 21:32.