Ir para conteúdo

POWERED BY:

Arquivado

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

peterlink

[Resolvido] For

Recommended Posts

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

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

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

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

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

×

Informação importante

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