Em resposta a perguntas e comentários, vamos a mais um post aqui no linhadecomando.com.
Como gravar as datas geradas no banco de dados?
Lembrando que as datas foram geradas pela função disponibilizada aqui no blog – clique aqui para visualizar a função.
1º- criar base de dados e tabela para armazenar data e valor da parcela
CREATE DATABASE `parcelas` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; CREATE TABLE IF NOT EXISTS `cad_parcelas` ( `id_parcelas` int(11) NOT NULL AUTO_INCREMENT, `data_vencimento_parcelas` date NOT NULL, `valor_parcelas` decimal(10,2) NOT NULL DEFAULT '0.00', PRIMARY KEY (`id_parcelas`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
2º- criar o arquivo conexao.php para conectar ao banco de dados
<? $DBNAME = "parcelas"; $USUARIO = "root"; $PASSWORD = ""; $SERVIDOR = "localhost"; if(!($id = mysql_connect($SERVIDOR,$USUARIO,$PASSWORD))) { echo "<p align=\"center\"><big><strong>Não foi possÃvel estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador. </strong></big></p>"; exit; } if(!($con=mysql_select_db($DBNAME,$id))) { echo " <p align=\"center\"><big><strong>Não foi possÃvel estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador. </strong></big></p>"; exit; } ?>
3º- criar o arquivo index.php para chamada da função e inserção na base de dados
opção 1:
<?php require_once("conexao.php"); function calcularParcelas($nParcelas, $dataPrimeiraParcela = null){ if($dataPrimeiraParcela != null){ $dataPrimeiraParcela = explode( "/",$dataPrimeiraParcela); $dia = $dataPrimeiraParcela[0]; $mes = $dataPrimeiraParcela[1]; $ano = $dataPrimeiraParcela[2]; } else { $dia = date("d"); $mes = date("m"); $ano = date("Y"); } for($x = 0; $x < $nParcelas; $x++){ $dt_parcelas[] = date("Y-m-d",strtotime("+".$x." month",mktime(0, 0, 0,$mes,$dia,$ano))); }//for foreach($dt_parcelas as $indice => $datas){ $ins = "INSERT INTO cad_parcelas ( data_vencimento_parcelas, valor_parcelas ) VALUES ( '$datas', '1.99' )"; $sucesso = mysql_query($ins); if ($sucesso){ echo "Parcela [$indice]: ".$datas."<br/>"; }else{ die(mysql_error()); } }//foreach }//function calcularParcelas(5, "31/08/2011"); ?>
A função teve algumas alterações para funcionar o insert:
- alterado a formatação da data para o padrão do mysql “d/m/Y” para “Y-m-d“.
- utilização de um array ($dt_parcelas[]).
- uso do foreach para transportar o valor do array para uma variável ($datas).
opção 2:
Colaboração do Igor Botani Gonçalves.
<?php require_once("conexao.php"); function calcularParcelas($nParcelas, $dataPrimeiraParcela = null){ if($dataPrimeiraParcela != null){ $dataPrimeiraParcela = explode( "/",$dataPrimeiraParcela); $dia = $dataPrimeiraParcela[0]; $mes = $dataPrimeiraParcela[1]; $ano = $dataPrimeiraParcela[2]; } else { $dia = date("d"); $mes = date("m"); $ano = date("Y"); } for($x = 0; $x < $nParcelas; $x++){ $parcela = date("Y-m-d",strtotime("+".$x." month",mktime(0, 0, 0,$mes,$dia,$ano))); if(mysql_query("INSERT INTO cad_parcelas (data_vencimento_parcelas,valor_parcelas) VALUES ('".$parcela."','1.99')")) { echo "Parcela [".$x."]: ".$parcela."<br/>"; } else { die("Erro ao inserir a parcela ".$x.": ".mysql_error()); } }//for }//function calcularParcelas(5, "31/08/2011"); ?>
Até a próxima!
Related posts:

