Guest ton Postado Abril 19, 2008 Denunciar Share Postado Abril 19, 2008 iae galera beleza,assim, eu to montando um sistema pra exibição de produtos em um site.porem, esse produtos tem validade ate a meia noite, e nesse horario não tem ngm pra add manualmente os produtos.Então estou bolando um script para que quando der meia noite ele troque os produtos.Só que os produtos tem validade, digamos, 2 dias, 3 dias de promoção.Então seria mais ou menos assim:Se a data_entrada_produto == data_atual e menor que data_validade{exibe os produtos}Se não{não exibe nada}Queria algumas ideias de como fazer isso.Agradeço, vlw Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 19, 2008 Denunciar Share Postado Abril 19, 2008 Na hora que cadastrar o produto cadastra a data/hora inicial e a data/hora final, na parte que verifica faz uma query que pegue produtos que tenha data/hora inicial >= "agora" e data/hora final <= "agora"... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest ton Postado Abril 21, 2008 Denunciar Share Postado Abril 21, 2008 ficou assim:$conn = mysql_query("SELECT * FROM produtos WHERE dia_entrada >='$dia_atual' and dia_vencimento <='$dia_atual'");só q dessa forma ele não esta retornando nd.no banco os dados estão + ou - assim:dia_entrada = 21dia_vencimento = 23 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 21, 2008 Denunciar Share Postado Abril 21, 2008 E o valor da variável $dia_atual está vindo da onde? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest ton Postado Abril 21, 2008 Denunciar Share Postado Abril 21, 2008 to pegando o dia atual.$dia_atual = date(d); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 21, 2008 Denunciar Share Postado Abril 21, 2008 É, a lógica está certa, o campo dia_entrada e dia_vencimento é de que tipo? INT? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tonzinhu Postado Abril 21, 2008 Denunciar Share Postado Abril 21, 2008 hum...no banco esta como DOUBLE(10,0).o que eu estava vendo é o seguinte.se a data_entrada >= dia_atual e $data_vencimento <= $dia_atual{exibe}ai os dados no banco estão assimdata_entrada = 21data_vencimento = 23isso de digamos 5 produtos e já tem produtos com data_entrada = 24.então quando desse dia 24 entraria os da data atual e nah mostraria os anteriores.só o que acontece, como a regra mostra:Se a data_vencimento(23) <= dia_atual(21){exibe}Só q a data_vencimento é maior q o dia atual, então por isso nah esta exibindo.Ta froid isso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tonzinhu Postado Abril 22, 2008 Denunciar Share Postado Abril 22, 2008 tem algum meio de verificar linha por linha no bd?porque do jeito q esta ele sempre vai pegar a data de vencimento maior, se tivesse como comparar linha a linha daria certo.Alguma sugestão?vlw Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 22, 2008 Denunciar Share Postado Abril 22, 2008 Se você quiser verificar linha por linha vai ter que pegar todos os registros e jogar no while, mas se não está dando certo filtrar na query muito provavelmente alguma coisa na construção do seu sistema está com a lógica meio errada, a um tempo atrás eu fiz algo desse gênero e filtrava tudo direto na query. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tonzinhu Postado Abril 22, 2008 Denunciar Share Postado Abril 22, 2008 Aeee, consegui fazer funcionar, só que tem um porem :/...quando produtos forem cadastrados antes do dia 30/31 e com validade alem do dia 30/31 não aparecem :/... então se puderem me dar uma ajuda nessa etapa final com ideias eu agradeço :D.Vlw pela ajuda ate agora.aqui o script como esta agora:$dia_atual = date(d); $mes_atual = date(m); $conn = mysql_query("SELECT * FROM produtos WHERE mes_entrada = '$mes_atual'"); while($reg = mysql_fetch_assoc($conn)){ if($reg['dia_entrada'] > $dia_atual && $reg['mes_entrada'] == $mes_atual){ echo ""; } else{ if($reg['dia_vencimento'] < $dia_atual){ echo ""; } else{ print ' <table> <tr> <td>'.$reg['nome_produto'].'</td><td>R$ '.$reg['preco_produto'].'</td><td>'.$peso.' '.$medida.'</td></tr> </table>'; } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Abril 23, 2008 Denunciar Share Postado Abril 23, 2008 Cara, é o seguinte ... pelo que eu vi, os produtos só aparecem se o dia do vencimento for maior ou igual ao dia atual.Substitua isso ...if($reg['dia_entrada'] > $dia_atual && $reg['mes_entrada'] == $mes_atual){ echo ""; } else{ if($reg['dia_vencimento'] < $dia_atual){ echo ""; } else{ print ' <table> <tr> <td>'.$reg['nome_produto'].'</td><td>R$ '.$reg['preco_produto'].'</td><td>'.$peso.' '.$medida.'</td></tr> </table>'; } } por isso ... if($reg['mes_entrada'] < $mes_atual){ print ' <table> <tr> <td>'.$reg['nome_produto'].'</td><td>R$ '.$reg['preco_produto'].'</td><td>'.$peso.' '.$medida.'</td></tr> </table>'; } else if($reg['mes_entrada'] == $mes_atual) { if($reg['dia_entrada'] <= $dia_atual) { print ' <table> <tr> <td>'.$reg['nome_produto'].'</td><td>R$ '.$reg['preco_produto'].'</td><td>'.$peso.' '.$medida.'</td></tr> </table>'; } }Ou seja ... o sistema só mostra os ítens em que o mês da entrada for anterior ao atual e se o mês for o atual, o produto deverá ter sido cadastrado até o dia de hoje para aparecer. É isso o que você quer ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tonzinhu Postado Abril 23, 2008 Denunciar Share Postado Abril 23, 2008 Desse jeito ai que você colocou os produtos só irão aumentado, ou seja, os que já estiverem com prazo vencido ainda aperecerão.O codigo acima meu está correto, o unico problema é esse q dá se a pessoa cadastrar algum produto no mes de abril com validade ate maio entende. Ele não vai exibir. ai no caso to pensando em colocar uma regra impedindo de add se o produto cadastrado tiver validade para o proximo mês. Normalemente como é supermercado duram no maximo 3 dias as promoções, então pode dar o azar de isso acontecer e não exibir nd no dia 29,30 ou 31.Mas por enqnt está bom, da pra aguentar hehe até eu resolver esse probleminha.mas vlw pela ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest ton
iae galera beleza,
assim, eu to montando um sistema pra exibição de produtos em um site.
porem, esse produtos tem validade ate a meia noite, e nesse horario não tem ngm pra add manualmente os produtos.
Então estou bolando um script para que quando der meia noite ele troque os produtos.
Só que os produtos tem validade, digamos, 2 dias, 3 dias de promoção.
Então seria mais ou menos assim:
Se a data_entrada_produto == data_atual e menor que data_validade{
exibe os produtos
}
Se não{
não exibe nada
}
Queria algumas ideias de como fazer isso.
Agradeço, vlw
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.