juniorjpf Postado Dezembro 28, 2010 Denunciar Share Postado Dezembro 28, 2010 Ola, estou com um problema, que vou tentar explicar para voces, e se Deus quiser alguém vai entender e me ajudar rsSegue o código:<?PHP$sql = "SELECT account_id as account_id, Sum(online_second) as total FROM login_rcd GROUP BY account_id ORDER BY total DESC LIMIT 0,10 ";$result = @mysql_query($sql) or die(mysql_error());echo "<table border='1' width='50%' >";echo "<tr> <th><font color=#3BFF00>Nome</th><th><font color=#3BFF00>Horas Online</th> </tr>";while($row = mysql_fetch_array( $result )) { echo "<tr><td bgcolor=''><center>"; echo $row['account_id']; echo "</center></td><td bgcolor='><center>"; echo $row ['total]/60/60; echo "</center></td></tr>"; } echo "</table>"; ?>Bom, nesse caso, busco na tabela login_rcd o valor da coluna account_id e online_second.e mostro na paginao echo $row['account_id']; e echo $row ['total']/60/60; (/60/60 no caso é dividindo os segundos em horas.)porem, ai vem o problema. eu não posso exibir o account_id, eu preciso exibir o nome do usuario, que no caso está em outra tabelachamada cq_user na coluna name, que logo ao lado tambem tem account_id.o qe eu estou tentando fazer é o seguintemostrar o online_second junto do name, ou seja, mostrar o nome do usuario e o tempo que ele tem online.espero que entendam, e possam me ajudar.Obrigadoatt,Junior Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jefferson Oliveira Postado Dezembro 28, 2010 Denunciar Share Postado Dezembro 28, 2010 (editado) Cara tem duas formas;Mais simplesFaz uma consulta relacionadaex:SELECT L.* , U.* FROM login_rcd L, cq_user U WHERE L.account_id = U.account_id Outra é fazer um query dentro do While exemplo while($row = mysql_fetch_array( $result )) { $sqlcliente = mysql_query("SELECT * FROM cq_user WHERE account_id= ".$row["account_id"]." "); $cliente = mysql_fetch_array($sqlcliente); echo "<tr><td bgcolor=''><center>"; echo $cliente["name"]; echo "</center></td><td bgcolor=''><center>"; echo $row ['total']/60/60; echo "</center></td></tr>"; }Espero ter ajudado! Editado Dezembro 28, 2010 por Jefferson Oliveira Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 juniorjpf Postado Dezembro 28, 2010 Autor Denunciar Share Postado Dezembro 28, 2010 Cara tem duas formas;Mais simplesFaz uma consulta relacionadaex:SELECT L.* , U.* FROM login_rcd L, cq_user U WHERE L.account_id = U.account_id Outra é fazer um query dentro do While exemplo while($row = mysql_fetch_array( $result )) { $sqlcliente = mysql_query("SELECT * FROM cq_user WHERE account_id= ".$row["account_id"]." "); $cliente = mysql_fetch_array($sqlcliente); echo "<tr><td bgcolor=''><center>"; echo $cliente["name"]; echo "</center></td><td bgcolor=''><center>"; echo $row ['total']/60/60; echo "</center></td></tr>"; }Espero ter ajudado!Jefferson,show de bola, funcionou perfeitamente. Muito obrigado mesmo, não sabe o quanto tempo estava atras disso.não entendo muito de phpmas o segredo parece esta aqui$sqlcliente = mysql_query("SELECT * FROM cq_user WHERE account_id= ".$row["account_id"]." ");$cliente = mysql_fetch_array($sqlcliente);muito bacana.Obrigado, abraços, Feliz natal atrazado, e otimo 2011 pra ti. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jefferson Oliveira Postado Dezembro 28, 2010 Denunciar Share Postado Dezembro 28, 2010 Estamos aqui pra ajudar, e feliz natal e um otimo ano novo pra voce.Abracos! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 gilakgil Postado Dezembro 28, 2010 Denunciar Share Postado Dezembro 28, 2010 Estamos aqui pra ajudar, e feliz natal e um otimo ano novo pra voce.Abracos!Exatamente estamos aqui pra ajudar e já que não manja muito de php vamos lá:no lugar de mysql_fetch_array( que do jeito que você usou retornará uma coluna com o indice numérico e outra com o índice associativo(nome da coluna) da tabela por padrão)use mysql_fetch_assoc( que retorna apenas o indice associativo ) claro se você não precisar do índice numérico.E a respeito do assunto acima, fica bem melhor fazer uma consulta só no começo com um inner join ou com where mesmo.No seu caso deve ir rapidão, mas pense em uma consulta numa tabela com 1 milhão de registros toda vez passando por um while, iria demorar pakas.já ta resolvido mais só para você dar uma olhada em Inner join no mysql e da uma olhada tb heim mysql_fetch_assoc, fetch_array, fetch_row é bem interessante dependendo do que quer fazer.Falou amigão. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 juniorjpf Postado Dezembro 28, 2010 Autor Denunciar Share Postado Dezembro 28, 2010 Estamos aqui pra ajudar, e feliz natal e um otimo ano novo pra voce.Abracos!Exatamente estamos aqui pra ajudar e já que não manja muito de php vamos lá:no lugar de mysql_fetch_array( que do jeito que você usou retornará uma coluna com o indice numérico e outra com o índice associativo(nome da coluna) da tabela por padrão)use mysql_fetch_assoc( que retorna apenas o indice associativo ) claro se você não precisar do índice numérico.E a respeito do assunto acima, fica bem melhor fazer uma consulta só no começo com um inner join ou com where mesmo.No seu caso deve ir rapidão, mas pense em uma consulta numa tabela com 1 milhão de registros toda vez passando por um while, iria demorar pakas.já ta resolvido mais só para você dar uma olhada em Inner join no mysql e da uma olhada tb heim mysql_fetch_assoc, fetch_array, fetch_row é bem interessante dependendo do que quer fazer.Falou amigão.Opa,interessante... vou dar uma olhada sim.sobre inner join eu já li uma vez.vou dar mais algumas olhadas.e no exemplo, tem toda razao. no meu caso não chega a 15 mil registros. agora imagina em um projeto maior com 1 milhao de registros....esse semestre vou aprender sql e php no curso tecnico. espero poder voltar aqui ajudando a quem precisa, e aprendendo mais ainda.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
juniorjpf
Ola, estou com um problema, que vou tentar explicar para voces, e se Deus quiser alguém vai entender e me ajudar rs
Segue o código:
Bom, nesse caso, busco na tabela login_rcd o valor da coluna account_id e online_second.
e mostro na pagina
o echo $row['account_id']; e echo $row ['total']/60/60; (/60/60 no caso é dividindo os segundos em horas.)
porem, ai vem o problema. eu não posso exibir o account_id, eu preciso exibir o nome do usuario, que no caso está em outra tabela
chamada cq_user na coluna name, que logo ao lado tambem tem account_id.
o qe eu estou tentando fazer é o seguinte
mostrar o online_second junto do name, ou seja, mostrar o nome do usuario e o tempo que ele tem online.
espero que entendam, e possam me ajudar.
Obrigado
att,
Junior
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.