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

Ligar Usuario logado aos cadastros que o mesmo fará


mss-tech

Pergunta

Bom dia caros colegas... Sou iniciante no PHP, estou com uma situação que gostaria da ajuda de vocês para solucionar.

Estou fazendo uma intranet simples onde os funcionários vão cadastrar algumas despesas, essas despesas deverão esta ligadas ao usuário que fez o cadastro, pois posteriormente poderá visualizar suas despesas e edita-las caso haja necessidade.

O meu banco de dados possui a tabela Usuario e Despesa onde as mesmas possui um relacionamento de 1n (1 usuário pode cadastrar varias despesas). Sendo assim na criação do banco de dados foi gerado um relacionamento entre essas duas tabelas gerando uma chave estrangeira na tabela Despesas ( FK despesa_usuario). quando insiro um novo registro na tabela Despesas pelo PHP MyAdmin consigo inserir, pois me dar opção de selecionar a chave estrangeira, porem pelo código PHP não sei como fazer isso.

Segue meu código PHP:

<?php 

include("config.php");
 
 
$nome_func           = $_POST ['nome_func'];    //atribuição do campo "nome_func" vindo do formulário para variavel    
$cargo_func           = $_POST ['cargo_func'];    //atribuição do campo "cargo" vindo do formulário para variavel
$veiculo           = $_POST ['veiculo'];    //atribuição do campo "veiculo" vindo do formulário para variavel
$placa               = $_POST ['placa'];    //atribuição do campo "placa" vindo do formulário para variavel
$km_inicial           = $_POST ['km_inicial'];    //atribuição do campo "km_inicial" vindo do formulário para variavel
$km_final           = $_POST ['km_final'];    //atribuição do campo "km_final" vindo do formulário para variavel
$km_trabalho       = $_POST ['km_trabalho'];    //atribuição do campo "km_trabalho" vindo do formulário para variavel
$km_particular     = $_POST ['km_particular'];    //atribuição do campo "km_particular" vindo do formulário para variavel
$media_km_litro       = $_POST ['media_km_litro'];    //atribuição do campo "km_media" vindo do formulário para variavel
$desp_cartao       = $_POST ['desp_cartao'];    //atribuição do campo "desp_cartao" vindo do formulário para variavel
$abas_particular   = $_POST ['abas_particular'];    //atribuição do campo "abas_particular" vindo do formulário para variavel
$mes               = $_POST ['mes'];    //atribuição do campo "mes" vindo do formulário para variavel
$total_despesa       = $_POST ['total_despesa'];    //atribuição do campo "total_despesa" vindo do formulário para variavel
$total_reembolso   = $_POST ['total_reembolso'];    //atribuição do campo "total_reembolso" vindo do formulário para variavel
             

//Gravando no banco de dados!

   
$sql = "INSERT INTO despesa ( nome_func, cargo_func, veiculo, placa,km_inicial,km_final,km_trabalho,km_particular,media_km_litro,desp_cartao,abas_particular,mes,total_despesa,total_reembolso,despesa_usuario) VALUES ('$nome_func','$cargo_func','$veiculo','$placa','$km_inicial','$km_final','$km_trabalho','$km_particular','$media_km_litro','$desp_cartao','$abas_particular','$mes','$total_despesa','$total_reembolso','$despesa_usuario')" or die ("Erro ao inserir dados: ".mysql_error());
 

mysql_query($sql);
 
echo "Seu cadastro foi realizado com sucesso!<br>Agradecemos a atenção.";
?> 

___________________________________________________________________________________________________________________________________________

Como ficaria o código nessa situação?

Me ajudem por favor. Grato desde já.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá mss-tech!

A primeira sugestão é que você não use nunca mais as extensões mysql_*

Há 3 anos que a comunidade mantenedora do php recomenda isso, veja:

mysql_.thumb.jpg.6e341f2068d2753158bc1dc

Se quiser fazer uma transição suave, sugiro que use mysqli Orientado a Objetos.

Há vários exemplos aqui: http://us3.php.net/manual/pt_BR/mysqli.query.php

A segunda sugestão, é que visite mais o php.net, pois lá você terá acesso a todas as novidades do php.

Sugestão de solução:

Para vincular o usuário que está efetuando o cadastro de uma despesa, faça com que ele esteja logado. Guarde a id dele em uma $_SESSION

Na sua tabela de despesas, crie mais uma chave estrangeira: fk_user

E quando for montar a query de inserção, insira nesta coluna a id do usuário logado.

Ex.: INSERT INTO despesas(fk_user, ..., ..., ..., ..., ...) VALUES ($_SESSION['user']['id'], .., ..., ..., ..., ...)

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Pela dica Lowys... entendi sua sugestão, porem na minha tabela Despesa  já existe um campo despesa_usuario fk que é proveniente do relacionamento entre a tabela Despesa e Usuário. Nesse caso eu não teria que selecionar esse usuário  e acrescentar no meu insert antes de inserir a despesa. Pelo teste de inserção que eu fiz pelo phpmyadmin, eu so consigo inserir uma despesa se eu selecionar qual usuário esta fazendo a mesma, pois as duas se relacionam.

Espero ter sido claro.

 

Desde já agradeço!

bd.png

bd2.png

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...