Jump to content

Recommended Posts

Posted

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  😛

Posted

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 ?

Posted

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 ?

Posted

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 .....;

Posted

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  😄

Posted

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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.