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

Feed con dos tablas

Estas en el tema de Feed con dos tablas en el foro de Mysql en Foros del Web. Hola quiero hacer un feed de dos tablas, las dos tienen un registro llamado publicacion con la fecha en que se publico entonces con eso ...
  #1 (permalink)  
Antiguo 02/09/2011, 22:40
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Feed con dos tablas

Hola quiero hacer un feed de dos tablas, las dos tienen un registro llamado publicacion con la fecha en que se publico entonces con eso me serviria para ordenar el feed de la fecha mas actual a la mas antigua.

El problema es que tiene campos distintos, por ejemplo en una tabla tiene un campo llamado descripcion y en la otra un campo llamado contenido. Y noc como hacer para que se listen las dos tablas bien porque lo hago con un while para que recorra todas los registros y despues pongo nombre del registro, fecha del registro y conenido del regisro, pero en la otra tabla no se llama contenido sino descripcion del registro :S
__________________
Los mejores juegos de PC gratis en ******
  #2 (permalink)  
Antiguo 03/09/2011, 16:17
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: Feed con dos tablas

Ninguna idea?
__________________
Los mejores juegos de PC gratis en ******
  #3 (permalink)  
Antiguo 04/09/2011, 09:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.322
Antigüedad: 12 años, 2 meses
Puntos: 2654
Respuesta: Feed con dos tablas

¿Qué relación hay entre las dos tablas?
Siempre entendiendo por relación de que a X registro(s) de la primera corresponda Y registro(s) de la segunda...
Si no aclaras eso, no se puede saber si lo que hay que hacer es un JOIN o un UNION (son operaciones diferentes).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 04/09/2011, 15:57
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: Feed con dos tablas

La relacion entre las dos es el registro fpublicacion supongo, osea yo tengo esta consulta para una tabla :

Cita:
$query = "SELECT *, juego.nombre, categorias.valor as categoria, usuarios.usuario FROM `juego`
INNER JOIN `categorias` ON categorias.idCategoria = juego.idCategoria
INNER JOIN `usuarios` ON usuarios.idUsuario = juego.idUsuario WHERE fPublicacion < '".date('Y-m-d H:i:s')."' AND estado = 'publicado'
ORDER BY fPublicacion DESC";
Y lo que busco es poder juntarla con la otra tabla, para que me liste tanto los valores de la primer tabla como los de la segunda de mayor a menor fecha.

Intente haciendo esto pero no dio resultado:

Cita:
$query = "SELECT *, categorias.valor as categoria, usuarios.usuario FROM `juego`, `noticia`
INNER JOIN `categorias` ON categorias.idCategoria = idCategoria
INNER JOIN `usuarios` ON usuarios.idUsuario = idUsuario WHERE fPublicacion < '".date('Y-m-d H:i:s')."' AND estado = 'publicado' ORDER
BY fPublicacion DESC";
__________________
Los mejores juegos de PC gratis en ******
  #5 (permalink)  
Antiguo 04/09/2011, 16:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.322
Antigüedad: 12 años, 2 meses
Puntos: 2654
Respuesta: Feed con dos tablas

En realidad no estás respondiendo mi pregunta.
No te estaba preguntando cómo era la consulta, sino que relación (PK/FK) existía entre las dos tablas.
Por lo poco que se puede inferir de tus consultas, lo que quieres es obtener las "noticias" referidas a un "juego". La pregunta es que cardinalidad existe entre "juego" y "noticias" y qué campos en cada tabla establecen la relación.
Eso es lo que se necesita saber para poder responderte.
A más de eso, la sintaxis de la segunda está mal construida, porque si estás usando INNER JOIN en la relación entre el resto de las tablas, debes usar INNER, LEFT o RIGHT JOIN con todas las tablas. Es decir, la sintaxis usada debe ser la misma en todos los casos.

¿Se entiende?
Por favor, postea la estructura de las tablas (el CREATE TABLE) para poder entender mejor tu planteo, o al menos explica claramente qué campos relacionan las tablas que quieres consultar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 04/09/2011, 21:17
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: Feed con dos tablas

No tienen relacion las dos tablas, una tabla la uso para los post de juegos y la otra para los post de noticias, y lo que yo quiero es listar los post del mas nuevo al mas viejo
__________________
Los mejores juegos de PC gratis en ******
  #7 (permalink)  
Antiguo 05/09/2011, 04:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.322
Antigüedad: 12 años, 2 meses
Puntos: 2654
Respuesta: Feed con dos tablas

Si son tablas no relacionadas, no puedes leerlas en un JOIN, porque eso te generará un producto cartesiano, o bien te devovlerá registros como si estuviesen relacionados, aunque no lo estén (relacionará PKs).
Lo que podrías hacer es hacer un UNION, si ambas consultas devuelven la misma cantidad de columnas, del mismo tipo y en el mismo orden. El problema lo tendrás para establecer qué registros corresponden a qué tabla de origen, porque el encabezado será único para ambas.
Pero si lo devuelto por una de ellas difiere en cantidad de columnas, tipo u orden, deberás hacer consultas separadas para cada caso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 05/09/2011, 08:17
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: Feed con dos tablas

No no, las dos tienen la misma estructura, y usaba Join para relacionar la tabla categoria con las tablas de los post (la de juegos y la de noticias) y en ellas la relacion es id y idcategoria
__________________
Los mejores juegos de PC gratis en ******
  #9 (permalink)  
Antiguo 05/09/2011, 08:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.322
Antigüedad: 12 años, 2 meses
Puntos: 2654
Respuesta: Feed con dos tablas

¿No era que no estaban relacionadas?

Cita:
Respuesta: Feed con dos tablas
No tienen relacion las dos tablas, una tabla la uso para los post de juegos y la otra para los post de noticias, y lo que yo quiero es listar los post del mas nuevo al mas viejo
Si una son posts de juegos y la otra post de noticias, a menos que Noticias esté relacionada con Juegos, no puedes hacer un JOIN en donde estén ambas, más allá de si cada una está o no relacionada con Categorías.

Analiza un poco mejor la lógica que estás aplicando en este caso, porque me parece que estás obteniendo un producto cartesiano, juntando cosas que no se deben juntar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 05/09/2011, 13:33
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: Feed con dos tablas

Hu que lastima, entonces la unica forma de poder hacer lo que ando buscando es ingeniandomelas con el UNION ??
__________________
Los mejores juegos de PC gratis en ******
  #11 (permalink)  
Antiguo 05/09/2011, 13:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.322
Antigüedad: 12 años, 2 meses
Puntos: 2654
Respuesta: Feed con dos tablas

Esa sería la idea. Pero como el encabezado en un UNION sólo contiene los nombres de las columnas de la primera SELECT, entonces no podrás en principio diferencia qué registros pertenecen a la primera y cuáles a la segunda.
Por eso decía que deberás resolver de algún modo que llegue a la aplicación alguna de las columnas con un valor que te permita diferenciar de donde viene qué.
Además, para que los bloques no se mezclen no debes usar UNION sino UNION ALL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 05/09/2011, 14:39
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: Feed con dos tablas

pero yo estaba pensando en hacer la consulta normal no, pero con las dos tablas a la vez. Luego hago un while y adentro una condicion que diga si el registro $contentido esta vacion voy al registro de la otra tabla sino voy a ese registro.

Me pude hacer entender? muestro un ejemplo sino..
__________________
Los mejores juegos de PC gratis en ******
  #13 (permalink)  
Antiguo 05/09/2011, 16:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.322
Antigüedad: 12 años, 2 meses
Puntos: 2654
Respuesta: Feed con dos tablas

En definitiva no estás entendiendo: Si haces una consulta "normal" haciendo un JOIN (con coma o con INNER JOIN) entre dos tablas que no están relacionadas por FOREIGN KEY, lo único que obtendrás será un producto cartesiano de datos basura.
No hay otra opción.
Simplemente, si las tablas no están relacionadas por clave foránea, no puedes hacer una sola consulta para leerlas, deberás usar dos consultas y no una.
Así es como funciona una base de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 05/09/2011, 19:10
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: Feed con dos tablas

Y nose puede hacer las consultas por separado, luego juntarlas en un array e imprimirlo en orden cronologico?
__________________
Los mejores juegos de PC gratis en ******
  #15 (permalink)  
Antiguo 05/09/2011, 20:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.322
Antigüedad: 12 años, 2 meses
Puntos: 2654
Respuesta: Feed con dos tablas

¿Y para qué juntarlas?
Para eso las manejas en dos array separados, ya que a fin de cuentas no las vas a poner en la misma tabla de la página Web. ¿O si?

No compliques las cosas: Si tienes dos tablas incompatibles, simplemente las manejas por separado. De hecho, eso es lo que te aconsejaron hacer cuando preguntaste esto mismo en el foro de PHP (http://www.forosdelweb.com/f18/feed-...4/#post3977944).

Mi sugerencia es que sigas el consejo que te dio Patriarka en esa ocasión. No termino de comprender por qué le sigues dando vueltas al asunto... Esa es la mejor opción que puedes utilizar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #16 (permalink)  
Antiguo 05/09/2011, 20:32
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: Feed con dos tablas

Es que no quiero manejarlas por separado porque va a ser para un feed, y no quiero crear mas de un feed :S
__________________
Los mejores juegos de PC gratis en ******
  #17 (permalink)  
Antiguo 05/09/2011, 20:35
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 8 años, 6 meses
Puntos: 793
Respuesta: Feed con dos tablas

Como te dijeron en el post de PHP hay que usar la imaginación... Si ya tienes un array con todos los datos, sólo hace falta crear el feed, bastante fácil crearlo con DOMDocument, en el foro no muy lejos dejé un ejemplo completo. No hace falta complicarse.

Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #18 (permalink)  
Antiguo 05/09/2011, 20:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.322
Antigüedad: 12 años, 2 meses
Puntos: 2654
Respuesta: Feed con dos tablas

Entonces la solución a nivel de bases de datos, sería fusionar las dos tablas en una jerarquía, con una tabla padre, y manejarlas desde esa óptica.
Así podrías tener algo consistente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #19 (permalink)  
Antiguo 07/09/2011, 18:47
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: Feed con dos tablas

Bueno por fin pude terminar el codigo, tuve que aprender en el camino bastantes cosas para poder terminarlo pero con ayuda de todos este es el resulato (lo puse como aporte en un tema nuevo por si alguien mas necesitaba o necesitara algo parecido):

http://www.forosdelweb.com/f18/aport...amente-941908/
__________________
Los mejores juegos de PC gratis en ******

Etiquetas: campos, feed, registros, tabla, tablas
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 07:11.