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

Guarda os dados para todos os utilizadores e só devia guardar no utilizador que preencheu o formulário


Joao Domingues

Pergunta

Tenho um formulário de IMC (http://prnt.sc/cqqr7j) que quero guardar os dados inseridos nele para a página Conta.php (http://prnt.sc/cqqrdl) mas esta página da Conta.php só aparece se o utilizador criar uma conta no site, o problema é que os dados do formulário estao a ser guardados na página da Conta.php mas esta a guardar os dados para todos os utilizadores e só devia guardar no respetivo utilizador.

Por exemplo tenho um utilizador Joao e outro Rita, ambos criam conta no site e entram nas mesmas, preenchem o formulário do IMC e os dados que cada um preencheu deve ir na sua Conta.php e o meu problema é esse, ele esta a guardar todos os dados inseridos no formulário e guarda para todos os utilizadores e eu só quero que guarde para o utilizador que a preencheu.

Código Index.php (Onde está o formulário do IMC):

<?php
    if ($_SERVER['REQUEST_METHOD'] == 'GET')
    {
        if (!empty($_GET['Peso']) && !empty($_GET['Altura']))
        {
            $css = '';
            $Peso = $_GET['Peso'];
            $Altura = $_GET['Altura'];
            $Data = date_default_timezone_set('Europe/Lisbon');
            
            $Resultado = $Peso / ($Altura * $Altura);
            $Resultado = number_format($Resultado, 2, ',', '.');
            
            if (isset($_SESSION['User_ID']))
            {
                $Data = date("Y-m-d");
                $DadosIMC = array("Data" => $Data,
                "Peso" => $Peso,
                "Altura" => $Altura,
                "Resultado" => $Resultado);

                InserirDados($DadosIMC);
            }
        }
    }
?>

 

Código Database.php (Onde guardo os dados do formulário):

<?php
    
    function InserirDados($DadosIMC)
    {
        // Inicializar uma vari�vel que sinaliza o sucesso ou insucesso da opera��o
        $sucesso = False;
        
        // Criar a liga��o
        $mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);

        // Verificar se a liga��o foi efetuada com sucesso
        if (!$mysqli->connect_error)
        {
            // IMPORTANTE: Antes de interagir com a base de dados, estabelecer o character set.
            $mysqli->set_charset("utf8");
            
            // Preparar a query
            if ($stmt = $mysqli->prepare("INSERT INTO imc (Data, Peso, Altura, Resultado) VALUES (?, ?, ?, ?)"))
            {
                $stmt->bind_param('ssss', $DadosIMC['Data'], $DadosIMC['Peso'], $DadosIMC['Altura'], $DadosIMC['Resultado']);
                
                // Executar a query e verificar que n�o retornou FALSE
                if ($stmt->execute())
                {
                    // A opera��o foi executada com sucesso
                    $sucesso = True;
                }
                
                $stmt->close();
            }

            // Terminar a liga��o
            $mysqli->close();
        }

        return $sucesso;
    }    
    
    function GetResultado($ID)
    {
        // Declarar e inicializar a vari�vel que ir� conter os dados
        $registo = NULL;

        // Criar a liga��o
        $mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
        
        // Verificar se a liga��o foi efetuada com sucesso
        if (!$mysqli->connect_error)
        {
            // IMPORTANTE: Antes de interagir com a base de dados, estabelecer o character set.
            $mysqli->set_charset("utf8");
            
            // Preparar a query
            if ($stmt = $mysqli->prepare("SELECT * FROM imc WHERE ID = ?"))
            {
                $stmt->bind_param('i', $ID);
            
                // Executar a query e verificar que n�o retornou FALSE
                if ($stmt->execute())
                {
                    $result = $stmt->get_result();
                    
                    // Verificar o n�mero de registos devolvidos
                    if ($result->num_rows > 0)
                    {                        
                        $registo = $result->fetch_array();
                        
                        $result->free();
                    }
                }
                
                $stmt->close();
            }

            // Terminar a liga��o
            $mysqli->close();
        }
        
        return $registo;
    }    
    
    function GetResultados()
    {
        // Declarar e inicializar a vari�vel que ir� conter os dados
        $registos = NULL;

        // Criar a liga��o
        $mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);

        // Verificar se a liga��o foi efetuada com sucesso
        if (!$mysqli->connect_error)
        {
            // IMPORTANTE: Antes de interagir com a base de dados, estabelecer o character set.
            $mysqli->set_charset("utf8");
        
            // Preparar a query
            if ($stmt = $mysqli->prepare("SELECT ID, Data, Peso, Altura, Resultado FROM imc"))
            {
                // Executar a query e verificar que n�o retornou FALSE
                if ($stmt->execute())
                {
                    $result = $stmt->get_result();
                    
                    // Colocar os dados obtidos na vari�vel $registos, em formato array associativo
                    $registos = $result->fetch_all(MYSQLI_ASSOC);
                        
                    $result->free();
                }
                
                $stmt->close();
            }
            
            // Terminar a liga��o
            $mysqli->close();
        }

        // Retornar os dados        
        return $registos;
    }
    
    function EliminarResultado($ID)
    {
        // Inicializar uma vari�vel que sinaliza o sucesso ou insucesso da opera��o
        $sucesso = False;
        
        // Criar a liga��o
        $mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
        
        // Verificar se a liga��o foi efetuada com sucesso
        if (!$mysqli->connect_error)
        {
            // Preparar a query
            if ($stmt = $mysqli->prepare("DELETE FROM imc WHERE ID = ?"))
            {
                $stmt->bind_param('i', $ID);
                
                // Executar a query e verificar que n�o retornou FALSE
                if ($stmt->execute())
                {
                    // A opera��o foi executada com sucesso
                    $sucesso = True;
                }
                
                $stmt->close();
            }

            // Terminar a liga��o
            $mysqli->close();
        }

        return $sucesso;
    }
 ?>

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Esta a guardar bem o ID, eu criei várias contas e todas elas mostravam bem o ID debaixo do cabeçalho (header) do site. Agora só preciso guardar o ID quando estiver a preencher o formulário.

<?php
        if (isset($_SESSION['User_ID']))
        {
            $ID = var_dump($_SESSION['User_ID']);
            $NomeUtilizador = Usermanager::GetNomeUtilizador($ID);
        }
   
        if (!isset($NomeUtilizador)) 
        {
            $NomeUtilizador = "";
        }
    ?>

Editado por Joao Domingues
Link para o comentário
Compartilhar em outros sites

  • 0

Continua a não guardar...

Penso que o erro agora esteja na database porque quando eu coloquei $stmt->bind_param($DadosIMC['Data'], $DadosIMC['Peso'], $DadosIMC['Altura'], $DadosIMC['Resultado'], $DadosIMC['utilizador_ID']); isto parou de gravar os dados.

Editado por Joao Domingues
Link para o comentário
Compartilhar em outros sites

  • 0

descobrir o motivo do por que não esta gravando nada nesse campo, tenta colocar um valor fixo para ver se funciona

 

if (isset($_SESSION['User_ID']))

{
$ID = 1; //coloque um ID que exista na tabela de usuario
           $Data = date("Y-m-d");
           $DadosIMC = array("Data" => $Data,
                                             "Peso" => $Peso,
                                              "Altura" => $Altura,
                                              "Resultado" => $Resultado,
                                             "utilizador_ID" => $ID);

          InserirDados($DadosIMC);
          echo "<br>";
		var_dump($DadosIMC):

} 

 

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
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...