Duda al (intentar) crear un timeline

  • Autor Autor TaurusZDK
  • Fecha de inicio Fecha de inicio
T

TaurusZDK

Gamma
Programador
hola amigos de forobeta de nuevo yo con otra consulta e.e

he intentado hacer un timeline algo asi como el de facebook o twitter. tengo una columna en la tabla de users donde esta la lista de amigos (tmb e pensado en hacer otra tabla para almacenar ese listado aparte pero no quiero hacer mas grande la db xD) en dichacolumna se almacena la lista de amigos separados x comas y lo que quiero lograr es mostrar las ultimas publicaciones de esos amigos de los cuales estan en la columna del usuario, tengo otra tabla en la cual se almacenan las publicaciones y en el timeline quiero mostrarlas o ordenarlas por fecha

tengo ya esto armado

PHP:
        $query = $db->query("SELECT friendlist FROM usuarios WHERE user_id = '$uid'");     
        while($row = $db->fetch_array($query))
        {
            $friendlist_id = $row['friendlist'];
	  
            if ($friendlist_id == ''){
		        $result = false;
	        } else {	  
	        $lou_id = $row['user_id'];

                $array_friendlist = explode(",",$friendlist_id);
                $longitud = count($array_friendlist);

                for($i=0; $i<$longitud; $i++){

                    $idabuscar=trim($array_friendlist[$i]);
      
                    $query = $db->query("SELECT w.coment_id, w.autor_id, w.user_id, coment, w.time, u.username, u.user_id, u.avatar
		            FROM coment w
		            LEFT JOIN ".TABLE_PREFIX."users u ON (u.user_id=w.autor_id)
		            WHERE w.autor_id = '$idabuscar' 
		            ORDER BY w.time DESC
		            ");
					if($db->num_rows($query) == '0'){
			            $wip = false;
		            }else{
				
                        while($row = $db->fetch_array($query))
                        {
					        $result = true;
			            }
					
					}
                }
		    } 
        }

y eso me carga todos las publicaciones de los amigos del usuario. pero con un detallito u.u que al usar for las publicaciones si se ordenan x fecha pero solo las de el usuario queda algo mas o menos asi

ejemplo:

user || coment || time

pedro: hola mundo fecha: 1
pedro: hola mundo fecha: 3
pedro: hola mundo fecha: 23

maria: hola mundo fecha: 2
maria: hola mundo fecha: 4
maria: hola mundo fecha: 5
maria: hola mundo fecha: 20

y la idea es que quede asi
ejemplo:

user || coment || time

pedro: hola mundo fecha: 1
maria: hola mundo fecha: 2
pedro: hola mundo fecha: 3
maria: hola mundo fecha: 4
maria: hola mundo fecha: 5
maria: hola mundo fecha: 20
pedro: hola mundo fecha: 23


nose si me explique bien xD (se que el formato del time no es el correpto pero es solo un ejemplo xD) si alguien porfa me podria ayudar se lo agradeceria muchisimo!! eso ya llebo uff mucho tiempo intentandolo xD
 
En vez de hacer una consulta para cada amigo, intenta hacer una sola para todos, algo como:
PHP:
<?php
	$sql = "SELECT w.coment_id,
					w.autor_id,
					w.user_id,
					coment,
					w.time,
					u.username,
					u.user_id,
					u.avatar
            	FROM coment w
	            	LEFT JOIN " . TABLE_PREFIX . "users u
	            		ON (u.user_id=w.autor_id)
                WHERE w.autor_id IN ({$friendlist_id})
                ORDER BY w.time DESC;";
	$query = $db->query( $sql );
?>

Saludos.
 
Última edición:

Temas similares