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

Listar ultimos registros de varias tablas a la vez

Estas en el tema de Listar ultimos registros de varias tablas a la vez en el foro de Mysql en Foros del Web. Bueno, lo primero comentar que soy novato en esto ya que recien empiezo con POO. Tengo creadas dos tablas, y lo que quiero es listar ...
  #1 (permalink)  
Antiguo 11/08/2010, 11:30
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Listar ultimos registros de varias tablas a la vez

Bueno, lo primero comentar que soy novato en esto ya que recien empiezo con POO.

Tengo creadas dos tablas, y lo que quiero es listar los ultimos registros de ambas tablas ordenado por fecha, un clasico "ultimos articulos agregados".

El tema es que no doy con la consulta exacta, he probado de varias maneras:

select * from tabla1,tabla 2 order by fecha desc;
select * from tabla1 INNER JOIN tabla2 ON tabla1.fecha = tabla2.fecha
select * from tabla1 INNER JOIN tabla2 ON tabla1.id_tabla1= tabla2.id_tabla2
con el comando union, etc

Pero no hay manera, a lo que mas llego es a que me liste los registros de una sola tabla duplicados, o solo me coja un registro de una tabla...

Alguna ayuda por favor? Gracias
  #2 (permalink)  
Antiguo 11/08/2010, 13:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde PHP orientado a objetos a Mysql
  #3 (permalink)  
Antiguo 11/08/2010, 13:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Listar ultimos registros de varias tablas a la vez

Los dos más recientes de una tabla y de la otra.
(SELECT campo1, campo2 FROM tabla1 ORDER BY fecha DESC LIMIT 2)
UNION ALL
(SELECT campo1, campo2 FROM tabla2 ORDER BY fecha DESC LIMIT 2)

Pero esto es si las tablas no están relacionadas entre sí.
  #4 (permalink)  
Antiguo 11/08/2010, 17:50
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Listar ultimos registros de varias tablas a la vez

Nada que no hay manera. Me da este error:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\elabcweb\class\class.php on line 29

y no las tengo relacionadas.

La clase la tengo echa de esta manera:

Código PHP:
class Recientes
{
     private 
$articulos
    
    public function 
__construct() 
    {
        
$this->articulos=array();    
    }
    
        public function 
get_recientes() 
    {
        
$sql="SELECT * FROM videotutoriales INNER JOIN curso ";
        
$res=mysql_query($sql,Conectar::con());
        
        while (
$reg=mysql_fetch_assoc($res))
        {
            
$this->articulos[]=$reg;
        }
            return 
$this->articulos;
    }

Y luego llamo a la clase de esta manera:

Código PHP:
<?php
        $vid
=new Recientes();
        
$articulos=$vid->get_recientes();

        for (
$i=0;$i<count($articulos);$i++)
        {
        
?>    

<?php echo $articulos[$i]["titulo"]; ?>

<?php
}
?>
Pero lo mas que consigo es que me muestre los registros de una sola tabla duplicados.
  #5 (permalink)  
Antiguo 12/08/2010, 01:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Listar ultimos registros de varias tablas a la vez

En este foro no podemos escribir sintaxis de programación.
No olvides que el sql es:
(SELECT campo1, campo2 FROM tabla1 ORDER BY fecha DESC LIMIT 2)
UNION ALL
(SELECT campo1, campo2 FROM tabla2 ORDER BY fecha DESC LIMIT 2)

No nos dices cómo se llaman tus tablas ni sus campos. En la clase escribes videotutoriales y entiendo que es una de las tablas, pero ¿cómo se llaman las tablas y sus campos?
  #6 (permalink)  
Antiguo 12/08/2010, 09:11
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Listar ultimos registros de varias tablas a la vez

Perdón por el código, por eso en un principio habia puesto la consulta en el foro de POO.

Mira ya he conseguido que me liste los resultados de las dos tablas, lo malo es que no me las ordena por fecha conjuntamente, sino que primero me lista los campos de una tabla por orden de fecha y luego los campos de la otra tabla.....


tabla curso, campos: id_curso, titulo, detalle, autor

tabla videotutoriales, campos: id_videotutoriales, titulo, detalle, autor

Gracias por tu ayuda.
  #7 (permalink)  
Antiguo 12/08/2010, 09:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Listar ultimos registros de varias tablas a la vez

No nos has dicho cómo se llama el campo donde guardas la fecha. Yo lo he llamado campofecha en las dos tablas y le he puesto un alias en el primer select para poder ordenar luego por ese alias. Esto debería sacarte los 3 últimos de cada tabla.
(SELECT id_curso, 'curso' tabla, titulo, detalle, autor, campofecha fech FROM curso ORDER BY campofecha DESC LIMIT 3)
UNION ALL
(SELECT id_videotutoriales, 'videotutoriales', titulo, detalle, autor, campofecha FROM videotutoriales ORDER BY campofecha DESC LIMIT 3) ORDER BY fech DESC

Prueba y dinos qué ocurre.
  #8 (permalink)  
Antiguo 12/08/2010, 09:43
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Listar ultimos registros de varias tablas a la vez

Ahora si, eres un/una genio/a.

Gracias por tu tiempo, te debo una

Etiquetas: listar, registros, tablas, ultimo
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 12:44.