Ir ao conteúdo
  • Cadastre-se

PHP Sistema de postagem em php/mysql que aparece o usuario que posta


Posts recomendados

Seguinte, eu tenho uma noção sobre html, css, php, mysql. Porém eu estou com uma duvida que esta acabando comigo!

 

Olha, quando vou criar um sistema de postagens em php e mysql eu sei tranquilo, porém eu queria saber como deixar o nome do usuario que fez a publicação, tipo sem ele precisar escrever isso em nenhum input.

 

o que eu pensei em fazer foi pegar a variavel $_SESSION que cria quando o usuario que é UNICO loga.

Faço um fetch array e pego o usuario, mas se eu fizer, por exemplo para escrever o usuario em uma tag <a>, vai sempre escrever o usuario que está logado e vendo aquilo, nao o que fez a postagem, como eu faço para aparecer o usuario que fez a postagem?

 

Preciso muito de ajuda, sei que ficou meio confuso, mas eu tentei deixar bem claro!

 

Thanks :D

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Iccaro Nixon Olá,  seja bem vindo em nosso Clube do Hardware.

 

O que você quer fazer é mais simples do que você imagina!

Basicamente, se você estiver armazenando o nome(nick) do usuário no banco de dados, para fazer o "bem vindo, fulano",

Naturalmente, você já coloca na sessão.   Mas não precisa da sessão para isso.

 

Pense na seguinte estrutura:

Tabela usuario:

ID  nome   senha  email
1   fulano 1234   [email protected]

Tabela postagem:

ID  titulo         conteudo                   data        id_autor
1   Nova postagem  Mensagem do corpo do post  2018-02-22     1

Quando vemos esta estrutura do banco, logo pensamos que:

o campo id_autor  é a chave estrangeira do campo ID da tabela usuario.

Para que isso funcione, é necessário entender qual tabela vai controlar as outras que forem relacionadas com ela. No caso  é a tabela postagem.

 

Então nesta tabela postagem, você deve criar um índice(index) para identificar que o campo id_autor é uma chave estrangeira.

Criado o índice, no modo designer, você cria um relacionamento de 1:N onde a ligação se feita corretamente, vai perguntar se deseja configurar em modo cascata(on cascade) para update. Onde este modo, faz com que  uma linha altere outra caso haja uma alteração na tabela.

 

Feito corretamente os relacionamentos a sua consulta fica:

SELECT * FROM postagem 
INNER JOIN usuario ON usuario.ID = postagem.id_autor

Com isso você está apto para inserir os dados onde quer.

No php faria assim:

include "conexao.php";

$consulta = mysqli_query($conexao, "SELECT usuario.nome, 
                                           postagem.titulo, 
                                           postagem.conteudo, 
                                           postagem.data 
                                    FROM postagem 
                                    INNER JOIN usuario ON usuario.ID = postagem.id_autor");

while($postagem = mysqli_fetch_object($consulta)):
    echo "
          <div class='titulo'> $postagem->titulo</div>
          <div class='conteudo'>
              $postagem->conteudo
              Por $postagem->nome as $postagem->data
          </div>";
           
endwhile;

Veja que eu busquei na tabela usuario o nome dele, além dos outros dados da tabela postagem.

Para que tudo funcione corretamente,  certifique-se de que suas tabelas tenham o engine do tipo innoDB e não MyISAM

  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • Moderador
6 horas atrás, Iccaro Nixon disse:

A coluna id_autor ela fica como estrangueira, ela tem a funcao unique e auto_increment?

Não! A única coluna auto incrementada que você vai ter é a coluna ID de cada tabela.

A chave estrangeira não precisa, porque naturalmente ela será diferente, pois está diretamente relacionado a uma coluna que é única ( a chave primária da outra tabela)

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!