Ir para conteúdo

POWERED BY:

Arquivado

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

leonardo WD

[Resolvido] Página de perfil do Usuário

Recommended Posts

Bom galera to criando um painel onde tem a seção de meu perfil para o Administrador que estiver online pode ver as informações de seu perfil. Porém todavia entretanto estou com problemas na criação da página de perfil, já li alguns tutorias e assisti algumas video-aulas, porém está tudo escuro ainda.

 

Eu queria saber como fazer para exibir em uma página as informações de um único usuário do banco de dados, sendo que no banco existem outros usuários também.

 

Eu sei selecionar tudo e exibir todos os usuários cadastrados no banco em uma página, mas eu queria mesmo era exibir as informações do usuário que estar logado, ou seja, só as dele.

 

Eu tenho uma tabela coms os dados:

 

Tabela usuários:

id int auto_increment primary key,
nome varchar (128),
email varchar(125),
senha varchar(10)

 

Dentro dessa tabela tem 2 usuários por enquanto só para testar, mas depois vai ter mais usuários.

 

Na página meuperfil.php eu quero exibir as informações do usuário logado. Se alguém puder me dar uma luz de como fazer ou indicar alguma video-aula ou tutorial para eu aprender fico grato!

 

Desde já Obrigado! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa madrugada cara... Bom, o seu problema é bem simples.

 

Quando você estiver listando todos os usuários, faça mais ou menos assim:

...
while($result = mysql_fetch_array($query)) {
   echo 'Nome: '.$result['nome'].'<br />';
   echo 'E-mail: '.$result['email'].'<br />';
}
...

 

Daí no nome, você vai adicionar um link, ficará assim:

...
while($result = mysql_fetch_array($query)) {
   echo 'Nome: <a href="pagina-single.php?id='.$result['id'].'">'.$result['nome'].'</a><br />';
   echo 'E-mail: '.$result['email'].'<br />';
}
...

 

pagina-single.php

Será a página que vai mostrar os dados individuais de cada usuário.

 

?id=

Passará pela URL, o ID do usuário... Isso permite que você recupere os dados únicos de cada usuário.

 

Daí no pagina-single.php, sua query será mais ou menos assim:

1.  $ID = (int)$_GET['id'];
2.  $SQL = "SELECT `nome`, `email`, `senha` FROM `usuarios` WHERE `id` = '".$ID."'";
3.  $query = mysql_query($SQL) or die('MySQL Error: '.mysql_error());
4.
5.  if(resource($query)) {
6.      // Tudo ocorreu bem, prossiga com seu código
7.      $dados = mysql_fetch_array($query);
8.      echo $dados['nome'].'<br />';
9.      echo $dados['email'].'<br />';
10.     echo $dados['senha'];
11. }

 

1. Recupera o valor passado no ?id=

2. Monta uma SQL que busca o usuário individual - WHERE = Quando id for igual a $ID

3. Executa a query montada anteriormente

4.

5. Se tudo ocorrer bem em sua consulta, imprime os dados do usuário

6.

7. Recupera os dados da sua consulta na inha 3, e armazena-os em um array

8. Imprime o nome do usuário

9. Imprime o e-mail do usuário

10. Imprime a senha do usuário - Não recomendado

 

Cara. Não deu para eu testar, mas é para funcionar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Wanderson Valério pela ajudar, mas apareceu um erro. Olha eu fiz assim lá:

 

Aqui é onde está o link para a página do perfil:

 

<?php 
                   $result = mysql_query("SELECT * FROM usuarios");
                   while($linha = mysql_fetch_array($result)){
                   ?>
                   <li><a href="meuperfil.php?id=<?php echo $linha['id']?>">Meu Perfil</a></li>
                   <?php }?>

 

O código funcionol mais no menu está adicionando mais um link Meu Perfil a cada usuário cadastrado no banco! Ai eu fiz isso aqui:

 

<?php 
                   $result = mysql_query("SELECT * FROM usuarios");
                   while($linha = mysql_fetch_array($result)){
                        $id = $linha["id"]     ;
                   }
                   ?>
                   <li><a href="meuperfil.php?id=<?php echo $id?>">Meu Perfil</a></li>

 

Mais agora ele só ta pegando o último id do banco e não o id correspondente ao usuário que está logado!

 

Grato pela ajuda desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim:

 

<?php 
   $result = mysql_query('SELECT * FROM usuarios') or die(mysql_error());
   while($linha = mysql_fetch_array($result)) {
?>
       <li><a href="meuperfil.php?id=<?php echo $linha['id']?>">Meu Perfil</a></li>
<?php
   }
?>            

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz aqui o que você mandou, mas ele adicionou três links Meu Perfil, sendo que tem que ficar apenas um passando o Id do usuário logado.

 

Obrigado mais uma vez Wanderson Valerio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é aparecer isso mesmo. Existem três membros cadastrados, cada link aponta para o membro individualmente.

 

<?php 
   $result = mysql_query('SELECT * FROM usuarios') or die(mysql_error());
   while($linha = mysql_fetch_array($result)) {
?>
       <li>
    <span><?php echo $linha['nome'];?></span><br />
    <a href="meuperfil.php?id=<?php echo $linha['id']?>">Meu Perfil</a>
    <hr />
       </li>
<?php
   }
?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer o que eu queria, value Wanderson Valerio sua ajuda foi muito útil e me salvou.

 

Para aparecer só um link meu perfil e linkando para o id do usuário que estava logado, eu apenas recuperei por session, ficou assim:

 

<?php 
                   $usuario = $_SESSION["usuario"];
                   $result = mysql_query("SELECT * from usuarios where usuario='$usuario'");
                   while($linha = mysql_fetch_array($result)){
                        $id = $linha["id"];
                   }
                   ?>
                   <li><a href="meuperfil.php?id=<?php echo $id?>">Meu Perfil</a></li>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.