Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

josuel

[Resolvido] Atualizar dados em bd mysql com php

Recommended Posts

Pessoal boa tarde, sou novo aquir no forum e na liguagem php tambem. Estou com um problema que está me deixando sem sono e gostaria de pedir a ajuda de vocês desde já deixo aquir expresso meus agradecimentos a todos que poderem me derem um pouco de sua atenção!

 

Estou criando um sistema de notas para uma escola, já está praticamente pronto, pegue alguns exemplos na net e conseguir desenvolver um que usar sesões para autenticar o usuario.

 

Mais o problema está na hora de administra as notas dos alunos, na pagina que era para atualizar as notas dos alunos não atualiza só se eu colocar o aluno como administador do sistema. Se alguem poder me dizer o que pode está acontecendo fico grato!

 

segue o arquivo para alterar os dados

 

PHP
<?php

 

include "../validar_session.php";

 

include "../Config/config_sistema.php";

 

$nome = htmlspecialchars($_POST['nome']);

$curso = htmlspecialchars($_POST['curso']);

$matricula = $_POST['matricula'];

$met_ens_avp = $_POST['met_ens_avp'];

$met_ens_avd = $_POST['met_ens_avd'];

$met_ens_media = $_POST['met_ens_media'];

$met_ens_situacao = htmlspecialchars($_POST['met_ens_situacao']);

 

$sql = "update dados_usuarios set Curso = '$curso',Matricula = '$matricula',Met_ens_avp = '$met_ens_avp',Met_ens_avd = '$met_ens_avd',Met_ens_media = '$met_ens_media',Met_ens_situacao = '$met_ens_situacao' where Login = '$login_usuario'";

$consulta = mysql_query($sql);

 

if($consulta) {

        echo "<font color=green><b>

                  Nota cadastrada com sucesso!<br>

                  Click <a href=listar_usuarios.php>aqui</a> para efetuar o login.

                  </font></b>";

        exit;

} else {

        echo "<font color=red><b>

                  Não foi possivel atualizar os dados!<br>

                  Click <a href=../login.php>aqui</a> para retornar!

                  </font></b>";

        exit;

}

?>

 

Segue o arquivo para validar sesão

 

PHP
<?php

@session_start();

 

// inclui o arquivo de configuração do sistema

include "Config/config_sistema.php";

 

// verifica se a variavel existir

if(isset($_SESSION['login_usuario']) and isset($_SESSION['senha_usuario'])) {

        // se existie as sessões coloca os valores em uma varivel

        $login_usuario = $_SESSION['login_usuario'];

        $senha_usuario = $_SESSION['senha_usuario'];

} else {

        $erro = urlencode("Você não esta logado!");

        header("Location: login.php");

        exit;

}

 

// verifica se as variaveis estão atribuidas

if(!(empty($login_usuario) or empty($senha_usuario))) {

        // se estiverem atribuidos vamos ver se exist o login

        $consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");

        if(mysql_num_rows($consulta) == 1) {

                // se o usuario exostir vamos verificar a senha

                if($senha_usuario != mysql_result($consulta,0,"Senha")) {

                        // se a senha está correta vamos apagar a

                        // sessão que existia mas erra a errada

                        unset($_SESSION['login_usuario']);

                        unset($_SESSION['senha_usuario']);

                       

                        $erro = urlencode("Você não esta logado!");

                        header("Location: login.php");

                        exit;

                }

        } else {

                unset($_SESSION['login_usuario']);

                unset($_SESSION['senha_usuario']);

               

                $erro = urlencode("Você não esta logado!");

                header("Location: login.php");

                exit;

        }

} else {

        // caso as sessões estarem vaizias

        $erro = urlencode("Você não esta logado!");

        header("Location: login.php");

        exit;

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, bem-vindo ao iMasters! http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

 

Ao executar o script, aparece qual erro? Erro na atualização de dados?

 

Primeiro obrigado pelas boas vindas!

 

Não aparece erro nenhum, o problema e que quando vou atualizar as notas dos alunos ele não atualiza só se eu logar o aluno como administrador do sistema.

 

tem algum outro modo de atualizar os dados a não ser com esse comando abaixo

 

$sql = "update dados_usuarios set where Login = '$login_usuario'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos usar mysql_error(), para ver se o MySQL retorna algum erro.

 

troque isto:

PHP
$consulta = mysql_query($sql);

p

 

por isto:

PHP
$consulta = mysql_query($sql) or die (mysql_error());

 

poste o resultado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos usar mysql_error(), para ver se o MySQL retorna algum erro.

 

troque isto:

PHP
$consulta = mysql_query($sql);

p

 

por isto:

PHP
$consulta = mysql_query($sql) or die (mysql_error());

 

poste o resultado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Continua do mesmo jeito!

 

Não dá nenhum tipo de erro, e continua só atualizandos as dados do administrador, para conseguir atualizar os dados de uma aluno tenho que cadastra a senha dele como administrador.

 

Eu tô achando que é o arquivo "validar_session"

 

Porque quando mudo essa parte do script

 

where Login = '$login_usuario'";

 

para

 

where ID = '$id";

 

Ai o script não atualiza nada nem com a senha do administrador

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você sempre cria a variável $_SESSION['login_usuario'], tanto para aluno quanto para admins?

 

Sim criei a variavel $_SESSION['login_usuario'] tanto para o aluno quanto para o admins, para verrificar o login e a senha dos dois e dai direciona-los para a parte correta do site.

 

Sera que é esso o motivo de só atualizar os dados de quem fez o login? Ou seja sera que é por isso que listo todos os alunos cadastrados no bd mais só consigo atualizar os meus proprios dados de administador?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$login_usuario está com o valor do usuário que está acessando, não do usuário cujas notas serão alteradas. O ID do usuário deve ser passado numa outra variável, seja por POST ou numa sessão.

 

Como sitei no inicio do topico, ainda estou aprendendo php.

 

Se já não for muito incomodo gostaria que você me desse um exemplo de como eu fasso isso ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os dados vindos por POST são referentes a o quê? Sobre as notas do aluno, certo? Se sim, passe também o ID do aluno, para usar na SQL.

Sim os dados que passam por POST são de notas dos alunos.

 

Mais como eu vou conseguir passar o id se ele é autoincremente, isso eu não conseguir intender não, você pode explicar melhor ou dá um exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho como dar exemplo, pois não sei como você programou o sistema. Como que você fez para que as notas sejam alteradas no campo do aluno correto? Você não está passando o ID ou nome ou outra identificação do aluno?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho como dar exemplo, pois não sei como você programou o sistema. Como que você fez para que as notas sejam alteradas no campo do aluno correto? Você não está passando o ID ou nome ou outra identificação do aluno?

Mais só me diga uma coisa pelo codigo da pagina "valida_session" e pela pagina atualizar notas, você pode me dizer por qual das duas devo passar o id?

 

Existe alguma função para passar o id de um determinado cadastro no mysql?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai passar o ID ou o nome do aluno juntamente com os outros dados do formulário, não na página que verifica a sessão.

Tentei passar o id pelo formulario de alteração de dados mas, continua com o mesmo erro só altera os dados do administrador.

 

Vou posta aqui o script da pagina de alteração dos dados, se for possivel você dá uma visualizada no codigo, ficarei muito grato!

 

PHP
<?php

include "../validar_session.php";

 

include "../Config/config_sistema.php";

 

// recebe os dados do formulario

$codigo = $_GET['codigo'];

 

// faz consulta no banco

$consulta = mysql_query("select * from dados_usuarios where ID = '".$codigo."'");

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

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

<title>INSTITUTO PRÓ SABER</title>

<style type="text/css">

<!--

.style1 {font-size: 36px;

        color:#FFFFFF}

.style2 {

        color: #FFFFFF;

        font-weight: bold;}

.style3 {

        color: #FFFFFF;

        font-weight: bold;

        font-size:14px;

}

.style4  {background-image:url(../imagens/imagens2/Page%201.jpg)}

.style5 {font-size: 14px;

                color: #FFFFFF;

        font-weight: bold;}

.style6 {color: #FFFFFF; font-weight: bold; font-size:18px}

.style7 {color: #FFFFFF}

.style9 {color: #FF0000; font-weight: bold; }

.style10 {color:#FF0000;}

 

-->

</style>

 

</head>

 

<body>

<form action="cadastra_notas.php" method="post" enctype="multipart/form-data" name="formatualizar">

  <table width="676" border="2" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" class="style4">

    <tr>

      <td colspan="5"><img src="../imagens/flashapli/loginteto.jpg" width="750" height="100" /></td>

    </tr>

    <tr>

      <td colspan="5" align="center" class="style1">Boletim de Notas</td>

    </tr>

    <tr>

      <td colspan="5"><?php

while($linha = mysql_fetch_object($consulta)) {

        echo "<b>Olá ".$linha->Nome."!</b>";

?></td>

    </tr>

    <tr>

      <td width="341" align="right" class="style5">NOME:</td>

      <td colspan="4"><input name="nome" type="text" id="nome" size="45" maxlength="200" value="<?php echo $linha->Nome;?>" /></td>

    </tr>

    <tr>

      <td colspan="5"></td>

    </tr>

    <tr>

      <td align="center" class="style5">CURSO</td>

      <td width="92" align="center" class="style5">MATRICULA</td>

      <td width="89" align="center" class="style5">SITUAÇÃO</td>

      <td colspan="2" align="left" class="style5">CIDADE POLO</td>

    </tr>

    <tr>

      <td><input name="curso" type="text" id="curso" size="44" maxlength="20" value="<?php echo $linha->Curso;?>" /></td>

      <td><input name="matricula" type="text" id="matricula" size="14" maxlength="20" value="<?php echo $linha->Matricula;?>" /></td>

      <td><input name="situacao" type="text" id="situacao" size="13" maxlength="20" value="<?php echo $linha->Situacao;?>" /></td>

      <td colspan="2"><input name="cidade_polo" type="text" id="cidade_polo" size="17" maxlength="50" value="<?php echo $linha->Cidade_polo;?>" /></td>

    </tr>

    <tr>

      <td colspan="5" align="center" class="style6">NOTAS OBTIDAS</td>

    </tr>

    <tr>

      <td> </td>

      <td> </td>

      <td> </td>

      <td width="82"> </td>

      <td width="72"> </td>

    </tr>

    <tr>

      <td align="center" class="style5">MATERIAS</td>

      <td align="center" class="style5">AVP</td>

      <td align="center" class="style5">AVD</td>

      <td align="center" class="style5">MÉDIA</td>

      <td align="center" class="style5">SITUAÇÃO</td>

    </tr>

    <tr>

      <td align="right" bgcolor="#000000" class="style3">Metodologia do Ensino Superior:</td>

      <td><input name="met_ens_avp" type="text" id="met_ens_avp" size="12" maxlength="20" value="<?php echo $linha->Met_ens_avp;?>" /></td>

      <td><input name="met_ens_avd" type="text" id="met_ens_avd" size="12" maxlength="20" value="<?php echo $linha->Met_ens_avd;?>" /></td>

      <td><input name="met_ens_media" type="text" id="met_ens_media" size="12" maxlength="20"  value="<?php echo $linha->Met_ens_media;?>"/></td>

      <td><input name="met_ens_situacao" type="text" id="met_ens_situacao" size="10" maxlength="20" value="<?php echo $linha->Met_ens_situacao;?>" /></td>

    </tr>

    <tr>

     <td colspan="5"><img src="../imagens/flashapli/login.jpg" width="750" height="110" /></td>

    </tr>

     <?php

}

?>

  </table>

</form>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora, na página de alterações, use o campo "nome" passado pelo form para realizar a atualização no BD.

 

Muito obrigado mesmo pela paciência e pela ajuda principalmente!

O motivo de não funcionar era que eu estava declarando a variavel "nome" de forma errada

Ex:

Forma errada ( where Nome = '$nome_usuario'";)

 

Forma correta (where Nome = '$nome'";)

 

Fica registrado aqui meus agradecimentos ainda bem quem tem pessoas como você que divide conhecimento até a proxima valeu mesmo!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.