• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

raac

À volta com as datas...

8 mensagens neste tópico

Viva pessoal, estou aqui com uma pequena duvida,

entao é assim

num ciclo for tenho o seguinte:

for ($i = 0; $i <= $duracao ;$i++)

{

$datainicial = mktime (0, 0, 0, date("m")+$i,  date("d"),  date("y"));

$resultado = strftime ("%m", $datainicial);

echo "$resultado";

}

que é para me ir listando a lista de meses num prazo($duracao)  que que defino, até aqui tudo bem, mas o que eu pretendo é o ciclo for fazer essa listagem

a uma data que está na base de dados e não na data actual, como é que posso solucionar isto ?

Alguem pode dar uma ajudinha por favor  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se é bem o que queres eu...

Vamos imaginar que a data está no banco de dados mysql

mysql_connect("host", "user", "senha");

mysql_select_db( "teste" );

while($row = mysql_fetch_array(mysql_query("SELECT * FROM data")) {
for ($i = 0; $i <= $duracao ;$i++)
{
$datainicial = mktime (0, 0, 0, $row['mes']+$i,  $row['dia'],  $row['ano']);
$resultado = strftime ("%m", $datainicial);
echo "$resultado";
}
}

Mas isso depende da forma como está a data no banco de dados. Nesse exemplo tinha uma coluna "mes" outra coluna "dia" e outra coluna "ano".

Podes dizer qual é o banco de dados  que utilizaste e como é que está armazenada a data na mysql ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na base de dados a data esta gravada num campo do tipo "DATE"...

Então da maneira que indicas-te tenho que ter um campo para ano, dia mes, não será possivel ir buscar essa informaçao de uma só vez uma vez que o campo está no formato DATE ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual foi o comando da mysql que utilizaste para criar data ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual foi o comando da mysql que utilizaste para criar data ?

Sorry so pude responder agora...

Quando o registo é guardado na bade de dados uso :


UPDATE tabela SET datainicial=CURDATE() WHERE .....;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se é bem o que queres eu...

Vamos imaginar que a data está no banco de dados mysql

mysql_connect("host", "user", "senha");

mysql_select_db( "teste" );

while($row = mysql_fetch_array(mysql_query("SELECT * FROM data")) {
for ($i = 0; $i <= $duracao ;$i++)
{
$datainicial = mktime (0, 0, 0, $row['mes']+$i,  $row['dia'],  $row['ano']);
$resultado = strftime ("%m", $datainicial);
echo "$resultado";
}
}

Mas isso depende da forma como está a data no banco de dados. Nesse exemplo tinha uma coluna "mes" outra coluna "dia" e outra coluna "ano".

Podes dizer qual é o banco de dados  que utilizaste e como é que está armazenada a data na mysql ?

Tive a experimentar dessa forma e o resultado já da correcto  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que não deu, tens de esperar um pouco eu ando muito ocupado e não entro sempre neste forúm:

<?php
$con = mysql_connect( "host", "user", "senha" );

mysql_select_db( "teste", $con );

$query = mysql_query("SELECT data FROM tabela"); 

$data = mysql_fetch_array($query);

$data = explode( "-", $data);

$data['ano'] = $data['0'];
$data['mes'] = $data['1'];
$data['dia'] = $data['2'];

for ($i = 0; $i <= $duracao ;$i++)
{
$datainicial = mktime (0, 0, 0, $data['mes']+$i,  $data['dia'],  $data['ano']);
$resultado = strftime ("%m", $datainicial);
echo "$resultado";
}
?>

Não experimentei ainda mas acho que vai funcionar bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigadão kingless é isso mesmo, funciona na perfeição, thx fica bem.  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora