Autor Tópico: [RESOLVIDO] Botão Alterar Status - SQL Não Funciona  (Lida 350 vezes)

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
[RESOLVIDO] Botão Alterar Status - SQL Não Funciona
« Online: Julho 05, 2016, 12:35:04 pm »
Não sei aonde errei, criei um botão PHP para alterar um status, mas não funciona direito, vejam e me ajude por favor aonde errei...

Código: [Selecionar]
if (({status_loja} === 0) && ({status_laboratorio} !== 0))

{

//Atualiza Status_loja

sc_exec_sql("UPDATE
oslojamestre
SET
status_loja = 1
WHERE
(id = '". {id} ."') AND status_loja = 0");

}


else
{

//Atualiza Status_loja

sc_exec_sql("UPDATE
oslojamestre
SET
status_loja = 0
WHERE
(id = '". {id} ."') AND status_loja = 1");


}





« Última modificação: Julho 08, 2016, 02:35:01 pm por Ronyan Alves »

Haroldo

  • Expert
  • *****
  • Mensagens: 6277
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Botão Alterar Status - SQL Não Funciona
« Responder #1 Online: Julho 05, 2016, 12:46:20 pm »
Não funciona direito, é uma conclusão estranha.

Um sc_commit_trans() não ajudaria?


joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Botão Alterar Status - SQL Não Funciona
« Responder #2 Online: Julho 05, 2016, 03:58:58 pm »
Não funciona direito, é uma conclusão estranha.

Um sc_commit_trans() não ajudaria?


A questão é o sql funciona, mas ele não altera o valor corretamente, imagino que fiz algo de errado no if, não consegui imaginar o que foi, alterações por outras comparações mas tem algo de errado no if else...

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1149
  • .....
    • Email
Re:Botão Alterar Status - SQL Não Funciona
« Responder #3 Online: Julho 05, 2016, 04:43:46 pm »
ta comparando booleans ? ou valores?

si for valores use apenas == oi != para booleans === ou !===

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Botão Alterar Status - SQL Não Funciona
« Responder #4 Online: Julho 05, 2016, 05:18:03 pm »
ta comparando booleans ? ou valores?

si for valores use apenas == oi != para booleans === ou !===

Estou comparando valores, mas já havia colocado "==" mas não fez a comparação correta, o sql verifiquei está tudo certo...

Jailton

  • Expert
  • *****
  • Mensagens: 2038
Re:Botão Alterar Status - SQL Não Funciona
« Responder #5 Online: Julho 05, 2016, 06:08:17 pm »
Vamos fazer um Tira Teima, copia e guarda todo o seu código original em arquivo texto, e testa esse.
Código: [Selecionar]
if (empty({status_loja}) AND !empty({status_laboratorio})) {

//Atualiza Status_loja

$sql="
UPDATE
oslojamestre
SET
status_loja = 1
WHERE
id = '{id}' AND status_loja = 0
";

echo 'SQL 1 = '.$sql."<BR>";


} else {

//Atualiza Status_loja

$sql="
UPDATE
oslojamestre
SET
status_loja = 0
WHERE
id = '{id}' AND status_loja = 1
";

echo 'SQL 2 = '.$sql."<BR>";

}

sc_commit_trans();

// Aqui paramos o código para conferir
break; // Remover depois de terminar de testar.

sc_ajax_javascript('nm_recarga_form'); // Para ele mostrar os campos atualizados.



Verifica se o campo id na base é caracter ou numérico, se for
número o WHERE é assim: id = {id}

Na base o certo é também ficar assim na DDL: 0 ou 1 Default, ai depende do seu projeto.
status_loja smallint(1) DEFAULT 0,
status_laboratorio smallint(1) DEFAULT 0,

« Última modificação: Julho 05, 2016, 06:21:53 pm por Jailton »
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Botão Alterar Status - SQL Não Funciona
« Responder #6 Online: Julho 06, 2016, 09:12:43 am »
dentro do if e do elso, dá um print, tipo:
print "if: ".{campo};
e
print "else".{campo};

Ai verifica o valor que tá vindo nos campos e onde ele tá entrando.
Assim como ativar o modo debug da aplicação ( aplicação > configuração ).
--

Ronyan Alves
Equipe Scriptcase

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Botão Alterar Status - SQL Não Funciona
« Responder #7 Online: Julho 06, 2016, 10:44:59 am »
Vamos fazer um Tira Teima, copia e guarda todo o seu código original em arquivo texto, e testa esse.
Código: [Selecionar]
if (empty({status_loja}) AND !empty({status_laboratorio})) {

//Atualiza Status_loja

$sql="
UPDATE
oslojamestre
SET
status_loja = 1
WHERE
id = '{id}' AND status_loja = 0
";

echo 'SQL 1 = '.$sql."<BR>";


} else {

//Atualiza Status_loja

$sql="
UPDATE
oslojamestre
SET
status_loja = 0
WHERE
id = '{id}' AND status_loja = 1
";

echo 'SQL 2 = '.$sql."<BR>";

}

sc_commit_trans();

// Aqui paramos o código para conferir
break; // Remover depois de terminar de testar.

sc_ajax_javascript('nm_recarga_form'); // Para ele mostrar os campos atualizados.



Verifica se o campo id na base é caracter ou numérico, se for
número o WHERE é assim: id = {id}

Na base o certo é também ficar assim na DDL: 0 ou 1 Default, ai depende do seu projeto.
status_loja smallint(1) DEFAULT 0,
status_laboratorio smallint(1) DEFAULT 0,


Agradeço, mas tem algo de errado no if.., estou errando algo na lógica...

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1149
  • .....
    • Email
Re:Botão Alterar Status - SQL Não Funciona
« Responder #8 Online: Julho 06, 2016, 12:27:17 pm »
dentro do if e do elso, dá um print, tipo:
print "if: ".{campo};
e
print "else".{campo};

Ai verifica o valor que tá vindo nos campos e onde ele tá entrando.
Assim como ativar o modo debug da aplicação ( aplicação > configuração ).

segue esta dica,
faz echo ou print dos valores

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Botão Alterar Status - SQL Não Funciona
« Responder #9 Online: Julho 06, 2016, 07:55:25 pm »
dentro do if e do elso, dá um print, tipo:
print "if: ".{campo};
e
print "else".{campo};

Ai verifica o valor que tá vindo nos campos e onde ele tá entrando.
Assim como ativar o modo debug da aplicação ( aplicação > configuração ).

segue esta dica,
faz echo ou print dos valores
Obrigado, mas estou abortando esta tela, vou criar de outra forma, pois deve ser algum bug e estou perdendo muito tempo...
Obrigado à todos!

Jailton

  • Expert
  • *****
  • Mensagens: 2038
Re:Botão Alterar Status - SQL Não Funciona
« Responder #10 Online: Julho 07, 2016, 12:15:02 am »
A Lógica esta certa, mas é um direito seu 'desistir'.


$status_loja=0;
$status_laboratorio=1;





$status_loja=1;
$status_laboratorio=1;

O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Botão Alterar Status - SQL Não Funciona
« Responder #11 Online: Julho 08, 2016, 09:49:44 am »
A Lógica esta certa, mas é um direito seu 'desistir'.


$status_loja=0;
$status_laboratorio=1;





$status_loja=1;
$status_laboratorio=1;



Pois é, agradeço novamente o empenho de todos, mas após criar uma nova forma de avaliar este processo percebi que minha lógica estava errada para o objetivo final, pois além de utilizar a regra que você mesmo postou acima, eu queria poder alterar de forma livre o status_loja, e isto não seria possível da forma que escrevi o algoritmo, acabei abolindo a alteração livre do status_loja, e minimizei o problema, em momento futuro se houver um problema devido a isto volto novamente ou possibilito uma segunda tela.
Novamente agradeço o empenho, através da colaboração de todos me possibilitou ver algo que para mim estava despercebido, e não estava raciocinando.