[Resolvido] Trocando valores na tabela Mysql - PHP - Portugal-a-Programar
[Resolvido] Trocando valores na tabela Mysql
August 23, 2013 in PHP
Já tentei de várias maneiras trocar o valor na tabela Mysql apartir do if que postei a pouco tempo no outro tópico da Comparação das Datas.
Ou seja quando faço a comparação das Datas serviu para mudar a cor da linha da tabela php com este código aqui:
if(strtotime($estado) < strtotime($adminexpired))
echo "<tr bgcolor='#00FF00' id='element'>";
echo "<tr bgcolor='#FFFFFF' id='element'>";
Depois queria trocar o valor da tabela Mysql assim :
dbquery("UPDATE admins SET flags WHERE flags='Sem Permissões'");
Também já tentei assim:
dbquery("UPDATE admins SET flags='Sem Permissões' WHERE flags");
Também nao resultou.
SET flags -- afinal que valor está a ser artibuído ao campo a ser actualizado ?
WHERE flags='Sem Permissões'
SET flags='Sem Permissões'
WHERE flags -- afinal que valores deverá ter o campo 'flags' dos registos a serem actualizados ?
Edited August 23, 2013 by HappyHippyHippo
Pois é assim esses campos nem sempre tem o mesmo valor podem ter o valor de abc como o valor abcdefghijklmnopqrstu eu só queria que o campo passa se a Sem Permissões dependendo do valor que está inserido. Mas sim conforme o tempo ja ter expirado. Trocar o valor da tabela para Sem Permissões.
Edited August 23, 2013 by kenny
logo existem dois possíveis valore para o flag ? (Sem Permissões e o outro?).
Rui Carlos 376
A questões que tens que responder para escreveres a query são:
Qual a condição para que tenhas de actualizar o valor? (Isto é, em que situações é que queres actualizar o valor de uma linha da tabela.)
Qual o novo valor?
Como o HHH já deu a entender, em qualquer uma das queries que experimentaste, só respondes a uma das questões.
Pois o meu problema é com o código que mandei eu queria quando expirasse o tempo muda se a cor na tabela que já muda e que mete se o valor da tabela mysql "flags" em "Sem Permissões" dependendo do valor que tem lá.
Continuas sem dar informações suficientes para se saber quando é que uma linha da tabela vai ser actualizada.
Podes usar uma query como
UPDATE admins SET flags='Sem Permissões'
O problema é que isto actualiza-te todas as linhas. Assumindo que só é para actualizar algumas das linhas, precisas de usar o WHERE, com uma condição apropriada.
Quero actualizar a linha da tabela que fica em verde (bgcolor='#00FF00') ou seja quando o tempo expirar [if(strtotime($estado) < strtotime($adminexpired))]
Desculpe se nao me estou a explicar muito bem.
E como é que defines essa condição em SQL? Tens as cores guardadas na BD?
A questão é como é que com a informação que tens na BD sabes qual a linha a actualizar.
Esse bgcolor está no HTML, e a menos que tenhas a cor na BD, de pouco serve.
Tens algum ID que te permita identificar a linha?
Haaa pois não tenho nenhum ID que posso identificar a linha não. 😕
Também não tenho as cores guardadas na BD não.
Por isso sendo assim não posso fazer nada ? pois para guardar as cores era a mesma coisa só tenho mesmo a data de expiração guardada.
EDIT: Tentei usar um boolean tornando o em true quando trocar a cor da tabela. Mas mesmo assim sem sucesso.
dbquery("UPDATE admins SET flags='Sem Permissões'");
Edited August 24, 2013 by kenny
Certamente que há alguma coisa que podes fazer. Deves conseguir definir uma condição usando a data de expiração.
Agora ninguém é adivinho para saber como é que tens a BD organizada.
qual é a estrutura da tabela admins?
A estrutura da Base de Dados está assim:
1: auth
4: flags
5: nome
6: tempo
7: data_expiracao
Supondo que não tens nenhum campo com primary key, adicionas um campo chamado id que vai ser auto increment e primary key.