0

Atualização de database

criado por André Piropo Santos em 21/06/2009 2:04pm
Galera eu tenho esse código ai só que estou com um problema, quando coloco na parte de UPDATE ... WHERE char_name='$antigo' funciona, mas se eu adicionar mais um where não pega mais, da a mensagem no site de que funcionou mas na database n modificou nada, o que eu estou fazendo é isso oh, UPDATE ... WHERE char_name='antigo' AND account_name='$usuario', sendo que $usuario é quando a pessoa loga, pois essa parte é numa página restrita aos cadastrados..
ASSIM Funciona mas qualquer pessoa pode editar o nome do char mesmo que não seja da conta da pessoa

<?php
$novo = $_POST['novo'];
include('config.php');
$sql = "SELECT char_name FROM characters WHERE char_name='$novo'";
$consulta=mysql_query($sql);
if(mysql_num_rows($consulta)>0)
              {
              echo "[ERRO]O usuário já existe.<br>";}
elseif(empty($novo) or strstr($novo, ' ') or strstr($novo, 'ADM') or strstr($novo, 'GM')){
echo "[ERRO]Por favor, digite um Nome v&aacute;lido sem caracters especiais!<br>";}
elseif ( $novo != $renovo ){ 
echo "[ERRO]O Novo nome e a confirmação do novo nome não conferem!<br>";}
elseif ( $renovo == '' ){
echo "[ERRO]O campo REPITA O NOVO NOME não pode ficar vazio!<br>";}
elseif ( $antigo == '' ){
echo "[ERRO]O campo Nome antigo não pode ficar vazio!<br>";}
              else
              {
$insert_member = mysql_query("UPDATE `characters` SET char_name = '$novo' WHERE char_name='$antigo'");}
if($insert_member) {
echo("<p class='b01'>Modificação Completa! <a href=logado2.php>Click aqui</a>");
} else {
echo("<p class='b01'>Modificação Falhou, <a href=trocarnome.php>Click aqui</a> para tentar novamente!</p>");
}
?>

Eu queria que pegasse +/- assim

<?php
$novo = $_POST['novo'];
include('config.php');
$sql = "SELECT char_name FROM characters WHERE char_name='$novo'";
$consulta=mysql_query($sql);
if(mysql_num_rows($consulta)>0)
              {
              echo "[ERRO]O usuário já existe.<br>";}
elseif(empty($novo) or strstr($novo, ' ') or strstr($novo, 'ADM') or strstr($novo, 'GM')){
echo "[ERRO]Por favor, digite um Nome v&aacute;lido sem caracters especiais!<br>";}
elseif ( $novo != $renovo ){ 
echo "[ERRO]O Novo nome e a confirmação do novo nome não conferem!<br>";}
elseif ( $renovo == '' ){
echo "[ERRO]O campo REPITA O NOVO NOME não pode ficar vazio!<br>";}
elseif ( $antigo == '' ){
echo "[ERRO]O campo Nome antigo não pode ficar vazio!<br>";}
              else
              {
$insert_member = mysql_query("UPDATE `characters` SET char_name = '$novo' WHERE char_name='$antigo' AND account_name='$usuario'");}
if($insert_member) {
echo("<p class='b01'>Modificação Completa! <a href=logado2.php>Click aqui</a>");
} else {
echo("<p class='b01'>Modificação Falhou, <a href=trocarnome.php>Click aqui</a> para tentar novamente!</p>");
}
?>

Sendo que $usuario é a sessão que iniciou..

Alguém ajuda ae por favor, vou ficar esperando resposta...
DESDE JÁ MUITO OBRIGADO A TODOS!

Lista de Respostas:

0
21/06/2009 9:56pm
(~15 anos atrás)
a var $usuario traz o valor exato, e na tabela tem sim o campo account_name, eu queria saber se tem como eu fazer um comando para reconhecer somente a linha exemplo... só editar char_name se o $usuario fosse igual ao account_name que está na mesma linha do char_name, tem como???

0
22/06/2009 10:33am
(~15 anos atrás)
Claro que tem, posta aqui a tabela, characters e char_name, o comando seria como descrito na sua pergunta.

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)