Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu não sei o que tem de errado com o código, mas o que está acontecendo é o seguinte, ele executa o comando da linha do UPDATE, entra no IF e executa as informações mostrando os dados que foram alterados, mas quando vou na tabela correspondente, na verdade ele não alterou nada, e o sistema não informa erro algum. Segue o código abaixo:
<?php
$conn = mysql_connect("localhost", "root", "") or die("Impossivel conectar");
if($conn)
{
mysql_select_db("divalore_divalores", $conn);
}
$id = $_POST['id'];
$nome = strtoupper($_POST['nome']);
$login = $_POST['login'];
$senha = $_POST['senha'];
$email = $_POST['email'];
$logantigo = $_POST['loginatual'];
if ($login != $logantigo)
{
$sql = mysql_query("UPDATE posicaofundos SET matricula='$login' WHERE nota='$logantigo'") or die(mysql_error());
$sql1 = mysql_query("UPDATE posicaofundos SET nota='$login' WHERE nota='$logantigo'") or die(mysql_error());
}
$x = mysql_query("UPDATE usuario SET login='$login', nome='$nome', senha='$senha', email='$email' WHERE id='$id' LIMIT 1") or die(mysql_error());
if($x)
{
echo"
<br>
<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0' bgcolor='#024282'>
<tr>
<td align='center' bgcolor='#024282'><font class='titcabec2'>INFORMAÇÕES ALTERADAS</font></td>
</tr>
<tr>
<td bgcolor='#ffd700'>
<table align='center' width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td> </td>
</tr>
<tr>
<td>
<table align='center' width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td width='40%' class='textologin' align='right'>Nome Completo: </td>
<td class='txtdatahora'> $nome</td>
</tr>
<tr>
<td width='40%' class='textologin' align='right'>Login de Acesso: </td>
<td class='txtdatahora'> $login</td>
</tr>
<tr>
<td width='40%' class='textologin' align='right'>Senha: </td>
<td class='txtdatahora'> $senha</td>
</tr>
<tr>
<td width='40%' class='textologin' align='right'>E-mail para Contato: </td>
<td class='txtdatahora'> $email</td>
</tr>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</td>
</tr>
</table><br>
<meta http-equiv='refresh' content='8;URL=index.php?adm=alteracot'>
";
}
else
{
echo"
<table width='80%' border='1' align='center' cellspacing='1' bordercolor='#0066FF'>
<tr>
<td align='center' cellspacing='1' bgcolor='#0066FF'><strong><font color='#FFCC00' size='2' face='Arial'>As informações abaixo não foram Alteradas </font></strong></td>
</tr>
<tr>
<td>
<table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td> </td>
</tr>
<tr>
<td align='center'><strong><font color='#CC0000' size='2' face='Arial'>A ALTERAÇÃO NÃO PODE SER REALIZADA </font></strong></td>
</tr>
<tr>
<td align='center'><strong><font color='#000000' size='1' face='Arial'>Ocorreu um erro na tentativa de salvar as informações no banco. Tente alterar novamente, caso o erro persista, contate o desenvolvedor.</font></strong></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align='center' cellspacing='1' bgcolor='#0066FF'><strong><font color='#FFCC00' size='1' face='Arial'>A página será redirecionada em 8 segundos</font></strong></td>
</tr>
</table>
<meta http-equiv='refresh' content='8;URL=index.php?adm=alteracot'>
";
}
?>
Desde já agradeço pela ajuda.
Esse código faz a alteração das informações de acesso do usuário a uma determinada parte de um site, as informações são passada por um form e nesse código será feito o UPDATE das informações passada na tabela. Só que além das informações de acesso na tabela usuário, eu também preciso alterar o login do usuário em uma outra tabela, pois o login nesse outra tabela terá "N" registros referente ao usuário em questão.
No trecho do código abaixo, será as informações que será alteradas nas tabelas, que são passadas pelo form:
$id = $_POST['id'];
$nome = strtoupper($_POST['nome']);
$login = $_POST['login'];
$senha = $_POST['senha'];
$email = $_POST['email'];
$logantigo = $_POST['loginatual'];
Depois é que vem o problema. Antes de fazer o UPDATE na tabela usuário, ele fará uma verificação se houve alteração no login do usuário, caso o login seja alterado, ele deverá fazer o UPDATE em uma outra tabela alterando o login do usuário, nessa tabela existirá vários registros para o mesmo login, que no caso, o UPDATE será feito se a condição do primeiro IF for verdadeira:
if ($login != $logantigo)
{
$sql = mysql_query("UPDATE posicaofundos SET matricula='$login' WHERE nota='$logantigo'") or die(mysql_error());
$sql1 = mysql_query("UPDATE posicaofundos SET nota='$login' WHERE nota='$logantigo'") or die(mysql_error());
}
Caso a condição acima não for atendida, ele faz o UPDATE na tabela usuário. Ele só fará o UPDATE do IF acima, se o login passado pelo form for diferente do atual no banco. Independente da condição do primeiro IF, ele irá executar o UPDATE destinado a tabela usuário da variável "x":
$x = mysql_query("UPDATE usuario SET login='$login', nome='$nome', senha='$senha', email='$email' WHERE id='$id' LIMIT 1") or die(mysql_error());
if($x)
{
....
....
Mas só que o sistema está fazendo como se tudo estivesse certo, ele faz a verificação e executa os comando normalmente, mas só que não faz as devidas alterações nos campos da tabela.
pode simplificar esse primeiro update seu
if ($login != $logantigo)
$sql = mysql_query("UPDATE posicaofundos SET matricula={$login}, nota={$login} WHERE nota={$logantigo}") or die(mysql_error());
debuga esse código seu
confuso isso!!!
o q você ker fazer???