peterlink 1 Denunciar post Postado Novembro 21, 2011 Boa Tarde tenho a seguinte for como exemplo for ($i=1;$i<=30; $i++) { $data=date("d/m/Y"); mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','$data')"); } $data = data de hoje com esse for estou inserindo 30 registros no banco de uma vez, agora eu gostaria de fazer a varivel $data ir somando os dias ate dar 30, alguem pode ajudar? o resultado seria esse mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','28/11/2011')"); mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','29/11/2011')"); mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','30/11/2011')"); mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','31/11/2011')"); mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','01/12/2011')"); mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','02/12/2011')"); Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Novembro 21, 2011 Primeiro, Porquê a data está no formato dd/mm/yyyy se no banco de dados você pode colocar um campo do tipo DATE e inserir as datas no formato yyyy-mm-dd. Da forma como sugeri, basta fazer assim <?php echo date( 'Y-m-d', strtotime( '+1 day', strtotime( '2011-11-21' ) ) ); // 2011-11-22 Depois para "puxar" estas datas formatadas no formato brasileiro, use MySQL :seta: DATE_FORMAT SELECT DATE_FORMAT( '2011-11-21', '%d/%m/%Y' ); # 21/11/2011 ou se quiser fazer isso no PHP mesmo <?php echo implode( '/', array_reverse( explode( '-', '2011-11-21' ) ) ); // 21/11/2011 Compartilhar este post Link para o post Compartilhar em outros sites
peterlink 1 Denunciar post Postado Novembro 21, 2011 Carlos na verdade o formato da data eu nao tinha prestado atenção, mas nao é essa a questao. o formato e tals pode dexa pra la que me viro. O que eu preciso é q no meu for os 30 registros que ele insere colocasse sempre +1 a partir da data de hoje no campo data. como se fosse esses insert, so que ao inves de colocar 30 insert gostaria de fazer por for, ficando como exemplo assim mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','30/11/2011')"); mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','31/11/2011')"); mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','01/11/2011')"); partindo da data de hoje insiro 30 registros sempre com um dia a mais da aterior Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 21, 2011 A sugestão do @Carlos, de alterar o formato da data, resolve o seu problema. É uma espécie de cascata, fazer uma coisa certa, ajuda em corrigir outra. Desculpe a curiosidade.. mas por que, você precisa inserir dessa forma(30 dias, um por um) ? essa modelagem na verdade, a uma primeira vista, me parece incorreta. Explique a situação inicial, que talvez haja uma forma melhor de resolver. Compartilhar este post Link para o post Compartilhar em outros sites
peterlink 1 Denunciar post Postado Novembro 22, 2011 Entao... é que assim no sistema que eu uso é cadastrado uma força de trabalho por dia, dai agora preciso mudar para cadastrar direto pros proximos 30 dias. Dando uma pesquisada acredito que encontrei uma forma no proprio comando mysql usando DATE_FORMAT(CURDATE() + INTERVAL $i DAY, '%d/%m/%Y') So que como estou iniciando no php estou com dificuldade pra acerta a syntax certa dessa query, tenti algo mais ou menos assim como exemplo. mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter','DATE_FORMAT(CURDATE() + INTERVAL $i DAY, %d/%m/%Y')"); Pronto consegui resolver meu problemas, dessa forma mysql_query("INSERT INTO login1 (id,login,nome,data) VALUE ('NULL','G0018256','Peter',CURDATE() + INTERVAL $i DAY)"); obrigado a todos pela ajuda Compartilhar este post Link para o post Compartilhar em outros sites