Foros del Web » Programando para Internet » PHP »

PHP OO listar valores combinados de 2 tablas

Estas en el tema de listar valores combinados de 2 tablas en el foro de PHP en Foros del Web. hola vuelvo con mas problemas, tengo una bd con varias tablas en la tabla1 tabla1(trabajos) id_trabajos tipo_trabajo cantidad tabla2 (historial) id_historial id_trabajo fecha detalles la ...
  #1 (permalink)  
Antiguo 13/03/2013, 13:56
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
listar valores combinados de 2 tablas

hola vuelvo con mas problemas, tengo una bd con varias tablas en la tabla1
tabla1(trabajos)
id_trabajos tipo_trabajo cantidad

tabla2 (historial)
id_historial id_trabajo fecha detalles

la tabla historial almacena todas las modificaciones al id_trabajo es decir se repite el id_trabajo muchas veces con distintas fechas y distintos id_historial.

cuando muestro una lista dinamica de todos los trabajos de la tabla trabajos, necesito agregarle el ultimo detalle del historial relacionado al id_trabajo pero solo el ultimo ingresado.
ej

id_trabajo tipo cantidad detalles
1 bolsas 5 pintadas
2 sacos 12
3 cajas 9 terminadas

como consigo mostrar el ultimo detalle asociado a id_trabajo?
he intentado de muchas formas pero no logro dar

alguien tiene algo similar..por favor estoy quedando muy nulo de ideas
  #2 (permalink)  
Antiguo 14/03/2013, 05:33
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: listar valores combinados de 2 tablas

Alguna ayuda a mi caso, tengo los registros del historial con fecha y hora por si eso favorece
  #3 (permalink)  
Antiguo 14/03/2013, 05:59
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: listar valores combinados de 2 tablas

¿Has probado a limitar la consulta a la tabla historial con limit y order desc para que empiece desde el último registro?

Un saludo
  #4 (permalink)  
Antiguo 14/03/2013, 06:10
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: listar valores combinados de 2 tablas

si pero solo muestra el ultimo registro, la idea es q segun el id_trabajos muestre el ultimo registro asociado a este
  #5 (permalink)  
Antiguo 14/03/2013, 06:15
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: listar valores combinados de 2 tablas

Es sencillo es usando limit y where para decirle que id_trabajos = id_historial.

Un saludo
  #6 (permalink)  
Antiguo 14/03/2013, 08:33
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: listar valores combinados de 2 tablas

Heli0s, agradezco enormemente tu atencion pero no soy muy experto, podrias darme algun ejemplo de como realizar la con consulta, mira yo hice algo asi:

SELECT hist.observaciones , trab.* FROM trabajos trab , hitorial hist WHERE tra.id_trabajos = hist.id_trabajos LIMIT ...


esa es mi duda.

te reitero las gracias
  #7 (permalink)  
Antiguo 14/03/2013, 10:22
 
Fecha de Ingreso: abril-2010
Ubicación: Cancun
Mensajes: 88
Antigüedad: 14 años
Puntos: 2
Respuesta: listar valores combinados de 2 tablas

Tomando la cunsulta que haces

Código:
SELECT hist.observaciones , trab.* FROM trabajos trab , hitorial hist WHERE tra.id_trabajos = hist.id_trabajos LIMIT ...
Yo lo haria asi

Código:
SELECT historial.observaciones , trabajo.* FROM trabajos INER JOIN hitorial USING(id_trabajos) ORDER BY historial.id_historial DESC LIMIT 0 , 
1
O

Código:
SELECT historial.observaciones , trabajos.* FROM trabajos INER JOIN hitorial ON historial.id_trabajos=trabajos.id_trabajos ORDER BY historial.id_historial DESC LIMIT 0 , 1

  #8 (permalink)  
Antiguo 14/03/2013, 12:26
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: listar valores combinados de 2 tablas

Estoy probando la consulta pero creo que no es eso lo que quiereo, lo que quiero obtener es todos los trabajos, con su última observacion.
Intentaré explicarme un poco mejor...empecemos por la tabla historial :

Historial
id_historial-----id_trabajos---------fecha-----------------observaciones

1-------------------1----------02/01/2013:09:00----------iniciada
2-------------------1----------02/01/2013:12:00----------recibida
3-------------------2----------01/01/2013:09:00-----------iniciada
4-------------------2----------02/01/2013:13:00-----------recibida
5-------------------1----------03/01/2013:8:00------------terminada

trabajos
id_trabajos-----tipo_trab-----cantidad------cliente
1----------------caja--------------12-----------xx
2----------------bolsa--------------9------------ss


en la consulta aparecería:

id_trabajos-----tipo de trab-----cantidad------cliente--------observaciones
1----------------caja--------------12-----------xx-----------terminada (ultimo del histo)
2----------------bolsa--------------9------------ss-----------recibida(ultimo del histo)

eso necesito lograr
agradezco mil veces el apoyo recibido

Seguire investigando y probando nuevas opciones de todas formas muchas gracias
  #9 (permalink)  
Antiguo 15/03/2013, 00:56
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: listar valores combinados de 2 tablas

Tendrias que usar INNER JOIN para la consulta.

Algo asi:

Código PHP:
SELECT FROM historial inner join trabajos on historial.id_trabajos trabajos.id_trabajos 

pruebalo
__________________
Zreep
  #10 (permalink)  
Antiguo 15/03/2013, 11:29
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: listar valores combinados de 2 tablas

Hola sigue un poco complicado al colocar.

SELECT * FROM historial inner join trabajos on historial.id_trabajos = trabajos.id_trabajos WHERE trabajos.area = %s...

me muestra todos los regustros de historial que son de la area señalada.

pregunta:
Como puedo dejar solamente la ultima observacion?
por que cada trabajo almacena como minimo 6 o 7 registros en el historial y solo debo presentar el ultimo..


sigo trabajando y atento a su apoyo y comentarios
  #11 (permalink)  
Antiguo 15/03/2013, 14:06
 
Fecha de Ingreso: abril-2010
Ubicación: Cancun
Mensajes: 88
Antigüedad: 14 años
Puntos: 2
Respuesta: listar valores combinados de 2 tablas

Usa el GROUP BY
  #12 (permalink)  
Antiguo 15/03/2013, 14:45
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: listar valores combinados de 2 tablas

hola mira coloque el sig codigo
SELECT * FROM historial hi INNER JOIN trabajos tr ON tr.id_trabajos = hi.id_trabajos WHERE area = %s GROUP BY hi.id_trabajos...

eso me da como resultado todo el listado de trabajos en un area especifica pero no coloca las observaciones.


como soluciono eso
  #13 (permalink)  
Antiguo 15/03/2013, 16:25
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: listar valores combinados de 2 tablas

solucionado, quiero agradecer infinitamente a quienes aportaron mas de una idea y la orientación gracias totales....
  #14 (permalink)  
Antiguo 08/04/2013, 14:18
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: listar valores combinados de 2 tablas

hola quisiera retomar el tema debido a que no esta dando los resultados q necesito.
voy a retomar un poco lo q quiero obtener y contarles lo q tengo.
Primero tengo una BD MySQL y ella varias tablas de las cuales necesito utilizar solo 2, estas son la trabajos y history_order.

en trabajos tengo estos campos

id_trabajos - Tipo_trabajo - cantidad - Valor --- etc

en history_order

id_history - id_trabajos - observaciones - fecha (incluye la hora)

el historial almacena informacion de los proceso q van pasando los trabajos alimentados por usuarios, estos quedan registrado con fecha y hora.

tengo q llamar una lista de los trabajos en orden correlativo esto por su id_trabajos y agregarle la ultima observacion registrada en el historial pero la final segun la fecha y la hora y si no tiene observaciones dejarlo en blanco.

como lo intente y casi dio resultado, con este codigo:
SELECT MAX(hi.observaciones) , hi.fecha , tr.* FROM trabajos tr INNER JOIN history_order hi ON tr.id_trabajo = hi.id_trabajo ORDER BY tr.id_trabajos

asi logre mostrar las observaciones pero no la ultimo por q max muestra por orden alfabetico la letra mas alta. al usar MAX(hi.fecha) me trae la ultima fecha.
pregunta?
como consigo traer el ultimo comentario segun la ultima fecha de cada id_trabajo?

estoy muy enredado soy muy nuevo en mysql, agradezco ayuda
  #15 (permalink)  
Antiguo 08/04/2013, 14:21
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: listar valores combinados de 2 tablas

Muestra el codigo que estas ocupando....

Etiquetas: mysql-php
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 15:55.