Jump to content


Photo

[Resolvido] Salvar Nota Do Aluno Logado No Banco Dados Em Php


  • Faça o login para participar
8 replies to this topic

#1 danielffem

danielffem

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo

Posted 08/08/2010, 13:04

Boa Tarde Pessoal,

Eu montei um questionário online em php porém não estou conseguindo gravar o total de pontos no banco de dados do determinado funcionário na coluna notas. realizei esse código abaixo porém não está funcionando.

<?
include ("seguranca.php");

$id=$_GET['id'];
$totalCorrect=$_POST['nota'];

mysql_select_db($database_php,$php);
$query_atualizar= "UPDATE mysql . usuarios SET nota = '$totalCorrect' WHERE usuarios . ID ='$id' LIMIT 1";
$atualizar = mysql_query($query_atualizar, $php) or die(mysql_error());
echo $row_atualizar['id'];
header("location:grade.php");
?>

Alguém tem alguma idéia de como fazer isso? desde já agradeço a todos

desculpe se eu postei em lugar errado, não se postava aqui ou no banco de dados.

Att.

#2 Alan Martini

Alan Martini

    Normal

  • Usuários
  • 75 posts
  • Sexo:Masculino
  • Localidade:Campo Bom, RS
  • Interesses:De tudo um pouco

Posted 09/08/2010, 08:04

Bom dia Daniel,

Teste retirar o "mysql" e os pontos " . " da string para atualização, não é necessário concatenação e depois do WHERE não é necessário o "usuarios" pois você já está setando esta tabela no update.

Verifique também os valores que estão sendo recebidos nas variáveis, se realmente existe esta referência no BD, caso ainda não funcionar imprima a variável e execute direto no MySQL.

<?php "UPDATE usuarios SET nota = '$totalCorrect' WHERE ID ='$id' LIMIT 1"; ?>

Qualquer coisa posta ai.
Este post lhe ajudou/foi útil? Retribua(+)
"O impossível é apenas questão de opinião" J.W.
--------------------------
Att.
Alan Martini

#3 danielffem

danielffem

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo

Posted 09/08/2010, 12:32

Bom dia Daniel,

Teste retirar o "mysql" e os pontos " . " da string para atualização, não é necessário concatenação e depois do WHERE não é necessário o "usuarios" pois você já está setando esta tabela no update.

Verifique também os valores que estão sendo recebidos nas variáveis, se realmente existe esta referência no BD, caso ainda não funcionar imprima a variável e execute direto no MySQL.

<?php "UPDATE usuarios SET nota = '$totalCorrect' WHERE ID ='$id' LIMIT 1"; ?>

Qualquer coisa posta ai.



Não deu certo. Será que é erro nos códigos. Voute relacionar abaixo:


Segurança.php - Esse arquivo é o que faz conexao com o banco.

// Configurações do Script
// ==============================
$_SG['conectaServidor'] = true; // Abre uma conexão com o servidor MySQL?
$_SG['abreSessao'] = true; // Inicia a sessão com um session_start()?
$_SG['caseSensitive'] = false; // Usar case-sensitive? Onde 'thiago' é diferente de 'THIAGO'
$_SG['validaSempre'] = true; // Deseja validar o usuário e a senha a cada carregamento de página?
// Evita que, ao mudar os dados do usuário no banco de dado o mesmo contiue logado.
$_SG['servidor'] = 'localhost'; // Servidor MySQL
$_SG['usuario'] = 'root'; // Usuário MySQL
$_SG['senha'] = 'root'; // Senha MySQL
$_SG['banco'] = 'mysql'; // Banco de dados MySQL
$_SG['paginaLogin'] = 'login.php'; // Página de login
$_SG['tabela'] = 'usuarios'; // Nome da tabela onde os usuários são salvos
// ==============================
// ======================================
// ~ Não edite a partir deste ponto ~
// ======================================
// Verifica se precisa fazer a conexão com o MySQL
if ($_SG['conectaServidor'] == true) {
$_SG['link'] = mysql_connect($_SG['servidor'], $_SG['usuario'], $_SG['senha']) or die("MySQL: Não foi possível conectar-se ao servidor [".$_SG['servidor']."].");
mysql_select_db($_SG['banco'], $_SG['link']) or die("MySQL: Não foi possível conectar-se ao banco de dados [".$_SG['banco']."].");
}
// Verifica se precisa iniciar a sessão
if ($_SG['abreSessao'] == true) {
session_start();
}
/**
* Função que valida um usuário e senha
*
* @param string $usuario - O usuário a ser validado
* @param string $senha - A senha a ser validada
*
* @return bool - Se o usuário foi validado ou não (true/false)
*/

function validaUsuario($usuario, $senha) {
global $_SG;
$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';
// Usa a função addslashes para escapar as aspas
$nusuario = addslashes($usuario);
$nsenha = addslashes($senha);
// Monta uma consulta SQL (query) para procurar um usuário
$sql = "SELECT `id`, `nome` FROM `".$_SG['tabela']."` WHERE ".$cS." `usuario` = '".$nusuario."' AND ".$cS." `senha` = '".$nsenha."' LIMIT 1";
$query = mysql_query($sql);
$resultado = mysql_fetch_assoc($query);
// Verifica se encontrou algum registro
if (empty($resultado)) {
// Nenhum registro foi encontrado => o usuário é inválido
return false;
} else {
// O registro foi encontrado => o usuário é valido
// Definimos dois valores na sessão com os dados do usuário
$_SESSION['usuarioID'] = $resultado['id']; // Pega o valor da coluna 'id do registro encontrado no MySQL
$_SESSION['usuarioNome'] = $resultado['nome']; // Pega o valor da coluna 'nome' do registro encontrado no MySQL
// Verifica a opção se sempre validar o login
if ($_SG['validaSempre'] == true) {
// Definimos dois valores na sessão com os dados do login
$_SESSION['usuarioLogin'] = $usuario;
$_SESSION['usuarioSenha'] = $senha;
}
return true;
}
}
/**
* Função que protege uma página
*/
function protegePagina() {
global $_SG;
if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {
// Não há usuário logado, manda pra página de login
expulsaVisitante();
} else if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {
// Há usuário logado, verifica se precisa validar o login novamente
if ($_SG['validaSempre'] == true) {
// Verifica se os dados salvos na sessão batem com os dados do banco de dados
if (!validaUsuario($_SESSION['usuarioLogin'], $_SESSION['usuarioSenha'])) {
// Os dados não batem, manda pra tela de login
expulsaVisitante();

grade.php - Esse Arquivo é aonde está a variável $totalCorret que é armazenada o total de respostas certas que precisa ser armazenada no banco.

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>PHP Quiz</title>

<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>

<body>

<div id="page-wrap">

<h1>Veja seu desempenho final!!!!</h1>

<?php

$answer1 = $_POST['question-1-answers'];
$answer2 = $_POST['question-2-answers'];
$answer3 = $_POST['question-3-answers'];
$answer4 = $_POST['question-4-answers'];
$answer5 = $_POST['question-5-answers'];
$answer6 = $_POST['question-6-answers'];
$answer7 = $_POST['question-7-answers'];
$answer8 = $_POST['question-8-answers'];
$answer9 = $_POST['question-9-answers'];
$answer10 = $_POST['question-10-answers'];

$totalCorrect = 0;

if ($answer1 == "A") { $totalCorrect++; }
if ($answer2 == "B") { $totalCorrect++; }
if ($answer3 == "D") { $totalCorrect++; }
if ($answer4 == "A") { $totalCorrect++; }
if ($answer5 == "C") { $totalCorrect++; }
if ($answer6 == "A") { $totalCorrect++; }
if ($answer7 == "B") { $totalCorrect++; }
if ($answer8 == "D") { $totalCorrect++; }
if ($answer9 == "C") { $totalCorrect++; }
if ($answer10 == "D") { $totalCorrect++; }

echo "<div id='results'>$totalCorrect / 10 correct</div>";

?>

</div>

<div align="center">
<p>&nbsp; </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>

Atualizar.php - Esse que é arquivo que deveria atualizar a coluna notas dos funcionários logados após a realização da provinha.

<?php require_once('Connections/php.php');?>

<?
require ("seguranca.php");

$id=$_GET['id'];
$totalCorrect=$_POST['nota'];

$query_atualizar= "UPDATE usuarios SET nota = '$totalCorret' WHERE id='$id' LIMIT 1";
$atualizar = mysql_query($query_atualizar, $php) or die (mysql_error());
echo $row_atualizar['id'];
header("location:grade.php");

if(!$result)
die("falha ao executar o comando: ".mysql_error());
else
echo "Dados Atualizados com sucesso.";

?>

<html>
<head>

Será que com isso fica mais fácil de identificar esse erro? enquanto isso estou tentando de outras maneiras.

valeu!!

#4 Alan Martini

Alan Martini

    Normal

  • Usuários
  • 75 posts
  • Sexo:Masculino
  • Localidade:Campo Bom, RS
  • Interesses:De tudo um pouco

Posted 09/08/2010, 13:26

Daniel,

Nesta linha,
$atualizar = mysql_query($query_atualizar, $php) or die (mysql_error());

Você não tem a variável $php declarada. Faça o seguinte para testar, exiba o $query_atualizar (echo) e verifique os valores recebidos, caso correto execute no mysql para verificar algum erro de sintaxe que esquecemos ^^.
;)
Este post lhe ajudou/foi útil? Retribua(+)
"O impossível é apenas questão de opinião" J.W.
--------------------------
Att.
Alan Martini

#5 danielffem

danielffem

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo

Posted 09/08/2010, 14:56

Tentei não deu certo. deu erro de sintaxe. tem como vc colocar a sintaxe para mim, pra ve se confere, porue eu acho q to digitando errado.

desculpe por te encomodar com issó, ainda sou novato nesse assunto.

Att

#6 Alan Martini

Alan Martini

    Normal

  • Usuários
  • 75 posts
  • Sexo:Masculino
  • Localidade:Campo Bom, RS
  • Interesses:De tudo um pouco

Posted 09/08/2010, 16:06

Faz assim:

$query_atualizar = "UPDATE usuarios SET nota = '$totalCorret' WHERE id='$id' LIMIT 1";
echo $query_atualizar;
$atualizar = mysql_query($query_atualizar) or die (mysql_error());
die;

Ele irá mostrar como está sendo gerado o update (toda a string), irá executar a query.

Após isso vá no PHPMyAdmin e execute o update para ver se irá funcionar.

Estamos "aí" pra ajudar e aprender (:

Edição feita por: Alan Martini, 09/08/2010, 16:09.

Este post lhe ajudou/foi útil? Retribua(+)
"O impossível é apenas questão de opinião" J.W.
--------------------------
Att.
Alan Martini

#7 danielffem

danielffem

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo

Posted 09/08/2010, 17:30

Faz assim:

$query_atualizar = "UPDATE usuarios SET nota = '$totalCorret' WHERE id='$id' LIMIT 1";
echo $query_atualizar;
$atualizar = mysql_query($query_atualizar) or die (mysql_error());
die;

Ele irá mostrar como está sendo gerado o update (toda a string), irá executar a query.

Após isso vá no PHPMyAdmin e execute o update para ver se irá funcionar.

Estamos "aí" pra ajudar e aprender (:



Conforme você me falou apareceu essa mensagem:

#1064 - You have an in your SQL Syntax; check the manual that corresponds to your mySQL server version for the right syntax to user near "UPDATE usuarios SET nota= $totalCorret WHERE id='$id' LIMIT at line 1

#8 Alan Martini

Alan Martini

    Normal

  • Usuários
  • 75 posts
  • Sexo:Masculino
  • Localidade:Campo Bom, RS
  • Interesses:De tudo um pouco

Posted 09/08/2010, 17:48

Assim... muito provavelmente algumas das suas variáveis não está retornando um resultado "aceitável", como eu coloquei um die no final ele irá exibir o comando e para ali, manda essa parte pra dar uma olhada.
Este post lhe ajudou/foi útil? Retribua(+)
"O impossível é apenas questão de opinião" J.W.
--------------------------
Att.
Alan Martini

#9 danielffem

danielffem

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo

Posted 09/08/2010, 23:28

Assim... muito provavelmente algumas das suas variáveis não está retornando um resultado "aceitável", como eu coloquei um die no final ele irá exibir o comando e para ali, manda essa parte pra dar uma olhada.



Deu certo, muito obrigado pela força. Agora tá funcionando.

Att.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq