Ir ao conteúdo
  • Cadastre-se

Problema na exibição de registros em MYSQL!


Arley Fellipe

Posts recomendados

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!

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!