raac Posted June 15, 2006 at 09:42 PM Report #33199 Posted June 15, 2006 at 09:42 PM 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 😛
kingless Posted June 15, 2006 at 10:00 PM Report #33203 Posted June 15, 2006 at 10:00 PM 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 ?
raac Posted June 16, 2006 at 10:04 AM Author Report #33234 Posted June 16, 2006 at 10:04 AM 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 ?
kingless Posted June 16, 2006 at 02:47 PM Report #33284 Posted June 16, 2006 at 02:47 PM Qual foi o comando da mysql que utilizaste para criar data ?
raac Posted June 16, 2006 at 07:10 PM Author Report #33348 Posted June 16, 2006 at 07:10 PM 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 .....;
raac Posted June 16, 2006 at 08:57 PM Author Report #33363 Posted June 16, 2006 at 08:57 PM 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 😄
kingless Posted June 17, 2006 at 06:07 AM Report #33397 Posted June 17, 2006 at 06:07 AM 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.
raac Posted June 17, 2006 at 03:19 PM Author Report #33445 Posted June 17, 2006 at 03:19 PM Obrigadão kingless é isso mesmo, funciona na perfeição, thx fica bem. 😄
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now