Dúvida ao (tentar) criar uma timeline

  • Autor Autor TaurusZDK
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
T

TaurusZDK

Gamma
Programador
No recomendado
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
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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 edição:

Tópicos similares

Voltar
Topo