Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RiseAgainst

selecionar data menor q dia de hoje

Recommended Posts

não consigo selecionar uma data menor q dia de hoje para pode atualizar apenas esses dados na coluna (df).

Tentei algumas coisas, vou posta-las abaixo, acho que o erro é de comparação. Me ajudem por favor

 

$q = mysql_query("SELECT IF (df <= CURDATE(), 'Menor', 'Maior') from quadro ORDER BY di DESC, cod DESC ");

 

while ( $f = mysql_fetch_array($q) )

{

$upt = "update tabela set kk_box = 'y' ";

$que = mysql_query($upt, $conecta) or die (mysql_error()) ;

}

 

RESULTADO: Atualiza todas as datas

 

 

$q = mysql_query("SELECT di,df,cod,CURDATE() from quadro ORDER BY di DESC, cod DESC ");

 

while ( $f = mysql_fetch_array($q) )

{

$upt = "update tabela set kk_box = 'y' WHERE ".$f[df]." < CURDATE()";

$que = mysql_query($upt, $conecta) or die (mysql_error()) ;

}

 

 

RESULTADO: Mesmo resultado atualizando todas as datas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho certeza de que este if dentro da select funciona, pelo menos para o mysql, você pode fazer isso:

SELECT campos  from quadro WHERE df <= NOW() ORDER BY di DESC, cod DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu wallace pela reposta, mas aconteceu o mesmo problema q ja vinha acontecendo antes, atualizam-se todas as linhas da coluna por que a condição não está funcionando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se isso for data de cadastro, lançamento ou similar sempre será menor que a data do dia, daí vai atualizar tudo mesmo.Existem datas maiores que o dia de hoje em sua tabela ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

um exemplo:

 

 

SELECT id,dt FROM tabela WHERE dt = DATE_SUB(NOW(), INTERVAL 1 DAY)

isso selecionará todos os registros onde o campo dt é == a data de hoje - 1 dia

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu a tds q ajudaram, eu não tentei o q o hinon postou mas deveria ter funcionado tb, valeu wallece sua ajuda foi mt importante. a solução q eu encontrei foi:$q = mysql_query("SELECT * from quadro WHERE df <= NOW() ");while ( $f = mysql_fetch_array($q) ) { $upd = "update quadro WHERE df <= NOW()";$detona = mysql_query($upd,$conecta) or die (mysql_error()) ;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza então...só não entendi muito bem pq você usou um select e logo após um update com a mesma cláusula where. Não dá pra fazer direto o update ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhar com datas é casca pq nao da pra testar todas as opções num único dia ...Hoje é dia 14/12 e eu queria saber o seguinte:Se hoje fosse dia 2/12 e eu puxasse DATE_SUB(NOW(), INTERVAL 3 DAY) ... ele iria interpretar a data corretamente?Puxaria do dia 29/11?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhar com datas é casca pq nao da pra testar todas as opções num único dia ...Hoje é dia 14/12 e eu queria saber o seguinte:Se hoje fosse dia 2/12 e eu puxasse DATE_SUB(NOW(), INTERVAL 3 DAY) ... ele iria interpretar a data corretamente?Puxaria do dia 29/11?

as funções de data DATE_SUB, DATE_ADD, now()...são próprias para isso. Não tem problema.consulte o manual do mysqlhttp://www.mysql.com/documentation/mysql/bychapter/

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz uma busca e econtrei este tópico, foi muito util, SELECT * from agenda WHERE data >= NOW() ORDER BY data ASCestou fazendo uma agenda funcionou direitinho este código.valew walace

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.