Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Arley Fellipe

[Resolvido] Problema na exibição de registros em MYSQL!

Recommended Posts

Olá estou terminando uma rede social e tenho um problema na exibição de amigos na table amigos quando clicado aparece os amigos mas o problema é o seguinte: meu código busca numa tabela chamada 'amigos' e nessa tabela tem 3 colunas usuario, amigo, total : usuario= id do cara logado , amigo = amigo do cara logado , total = a um numeral 0 para informar o total de amigos. até aqui o código é uma beleza, só que tem um porém nessa tabela exibe apenas o id do amigo do cara logado só que eu tenho uma tabela chamada conta_livre que está todos os dados como foto, nome, apelido.... o que eu quero é o seguinte pegar o id logado e buscar na tabela amigos pegar id amigo e buscar na tabela conta_livre e buscar foto, nome, apelido. e exibir com o código while ($resultado = ($query)){...} repetindo o código para cada amigo aqui está o código que exibe o id do amigo:


<?php
$_BS['PorPagina'] = 100000000000; // Número de registros por página

//id do cara logado pode ser a session mas para agilizar coloquei o número logo
$busca = '1';

$_BS['MySQL']['servidor'] = 'localhost';
$_BS['MySQL']['usuario'] = 'Arley Fellipe';
$_BS['MySQL']['senha'] = '12345';
$_BS['MySQL']['banco'] = 'dados';
mysql_connect($_BS['MySQL']['servidor'], $_BS['MySQL']['usuario'], $_BS['MySQL']['senha']);
mysql_select_db($_BS['MySQL']['banco']);

// Usa a função mysql_real_escape_string() para evitar erros no MySQL
$busca = mysql_real_escape_string($busca);

// ============================================

// Monta a consulta MySQL para saber quantos registros serão encontrados
$sql = "SELECT COUNT(*) AS total FROM `amigos` WHERE (`total` = 0) AND ((`usuario` LIKE '%".$busca."%') OR ('%".$busca."%'))";
// Executa a consulta
$query = mysql_query($sql);
// Salva o valor da coluna 'total', do primeiro registro encontrado pela consulta
$total = mysql_result($query, 0, 'total');
// Calcula o máximo de paginas
$paginas = (($total % $_BS['PorPagina']) > 0) ? (int)($total / $_BS['PorPagina']) + 1 : ($total / $_BS['PorPagina']);

// ============================================

// Sistema simples de paginação, verifica se há algum argumento 'pagina' na URL
if (isset($_GET['pagina'])) {
$pagina = (int)$_GET['pagina'];
} else {
$pagina = 1;
}
$pagina = max(min($paginas, $pagina), 1);
$inicio = ($pagina - 1) * $_BS['PorPagina'];

// ============================================

// Monta outra consulta MySQL, agora a que fará a busca com paginação
$sql = "SELECT * FROM `amigos` WHERE ((`usuario` LIKE '%".$busca."%') OR ('%".$busca."%')) ORDER BY `amigo` DESC LIMIT ".$inicio.", ".$_BS['PorPagina'];



// Executa a consulta
$query = mysql_query($sql);

// ============================================

// Começa a exibição dos resultados
echo "<table bgcolor='#FFFFFF' width='100%'>";
echo "<tr>";
echo "<td align='center'>";
echo "<p>".$total." Amigos</p>"; // aqui exibe o total de amigos
echo "</td>";
echo "<tr>";
echo "</table>";

while ($resultado = mysql_fetch_assoc($query)) {
$amigo = $resultado['amigo'];

echo "<table bgcolor='#FFFFFF' width='100%'>";
echo "<tr>";
echo "<td width='80%'>";
echo "Amigo: ";
echo ''.$amigo.'<br />'; //aqui repete o código e mostra o id de cada amigo
echo "</td>";
echo "</tr>";
echo "</table>";
}
?>

Agora que encontramos o id do amigo então dentro do código fazer a consulta sql na table conta_livre e buscar foto, nome, apelido de cada amigo.

Sou leigo em programação mas creio que seja possível o que eu estou querendo e quem for bom nisso será recompensado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Arley,

É possível sim, dentro do seu while que lista os amigos você pode executar outra consulta para listar estes nomes ou fazer um inner join no amigo

Exemplo meramente fictício

SELECT
amigos.id_logado,
amigos.id_usuario,
conta_livre.foto,
conta_livre.nome,
conta_livre.apelido
FROM
amigos
INNER JOIN conta_livre ON (conta_livre.id_usuario = amigos.id_usuario)
WHERE
amigos.id_logado = :meu_id_logado

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado anderson pela resposta, eu pesquisei bastante depois que mandei essa pergunta e já tinha montado o código certinho realmente usando o inner join posso consultar em duas tabelas. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado anderson pela resposta, eu pesquisei bastante depois que mandei essa pergunta e já tinha montado o código certinho realmente usando o inner join posso consultar em duas tabelas. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×