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 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;
}
Pergunta
Joao Domingues
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
33 respostass a esta questão
Posts Recomendados
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.