Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida juntar dois valores PHP + SQL


juniorjpf

Pergunta

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:

<?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 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

  • 0

Cara tem duas formas;

Mais simples

Faz uma consulta relacionada

ex:

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 por Jefferson Oliveira
Link para o comentário
Compartilhar em outros sites

  • 0
Cara tem duas formas;

Mais simples

Faz uma consulta relacionada

ex:

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 php

mas 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.

Link para o comentário
Compartilhar em outros sites

  • 0
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.

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...