Jump to content
kenny

[Resolvido] Trocando valores na tabela Mysql

Recommended Posts

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.

Share this post


Link to post
Share on other 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 ?

Edited by HappyHippyHippo

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

Share this post


Link to post
Share on other 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.

Edited by kenny

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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á.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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;
   }
}

Edited by kenny

Share this post


Link to post
Share on other sites
Rui Carlos

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.

Share this post


Link to post
Share on other sites
kenny

A estrutura da Base de Dados está assim:

1: auth

2: password

3: access

4: flags

5: nome

6: tempo

7: data_expiracao

Share this post


Link to post
Share on other 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;
}
}
}

Edited by Devexz

Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.