Ir para o conteúdo
kenny

[Resolvido] Trocando valores na tabela Mysql

Mensagens Recomendadas

kenny

Boas pessoal.

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'>";
}
else{
  echo "<tr bgcolor='#FFFFFF' id='element'>";
}

Depois queria trocar o valor da tabela Mysql assim :

if(strtotime($estado) < strtotime($adminexpired))
{
  echo "<tr bgcolor='#00FF00' id='element'>";
 dbquery("UPDATE admins SET flags WHERE flags='Sem Permissões'");
}
else{
echo "<tr bgcolor='#FFFFFF' id='element'>";
}

Não funcionou.

Também já tentei assim:

dbquery("UPDATE admins SET flags='Sem Permissões' WHERE flags");

Também nao resultou.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

UPDATE admins
  SET flags -- afinal que valor está a ser artibuído ao campo a ser actualizado ?
WHERE flags='Sem Permissões'

UPDATE admins
  SET flags='Sem Permissões'
WHERE flags -- afinal que valores deverá ter o campo 'flags' dos registos a serem actualizados ?

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kenny

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.

Editado por kenny

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Devexz

logo existem dois possíveis valore para o flag ? (Sem Permissões e o outro?).


Ás vezes, mais vale deixar a assinatura em branco.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

A questões que tens que responder para escreveres a query são:

  1. 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.)
  2. 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kenny

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á.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kenny

Quero actualizar a linha da tabela que fica em verde (bgcolor='#00FF00') ou seja quando o tempo expirar [if(strtotime($estado) < strtotime($adminexpired))]

Percebeu ?

Desculpe se nao me estou a explicar muito bem.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kenny

Haaa pois não tenho nenhum ID que posso identificar a linha não. :confused:

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.


$bool = false;

if(strtotime($estado) < strtotime($adminexpired))
{
 echo "<tr bgcolor='#00FF00' id='element'>";
 $bool = true;
if($bool == true)
{
  dbquery("UPDATE admins SET flags='Sem Permissões'");
  $bool = false;
   }
}

Editado por kenny

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Devexz

Supondo que não tens nenhum campo com primary key, adicionas um campo chamado id que vai ser auto increment e primary key.

Depois é só fazer:

//possivelmente deves ter um while antes
while(percorrer a tabela admins) {
$bool = false;
$id = idDaTabelaAdmins
if(strtotime($estado) < strtotime($adminexpired))
{
 echo "<tr bgcolor='#00FF00' id='element'>";
 $bool = true;
if($bool == true)
{
  dbquery("UPDATE admins SET flags='Sem Permissões' WHERE id = $idDaTabelaAdmins");
  $bool = false;
}
}
}

Editado por Devexz

Ás vezes, mais vale deixar a assinatura em branco.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.