Jump to content
Fórum Script Brasil
  • 0

Ligar Usuario logado aos cadastros que o mesmo fará


mss-tech
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...