PHP: Gravando parcelas no MySQL

    Obrigado! você é a 1.377ª pessoa que visita este post.

    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:

    1. PHP: Trabalhando o resultado obtido de uma consulta sql (completo)
    2. PHP: Trabalhando o resultado obtido de uma consulta sql (checkbox)
    3. PHP-MySQL: Gravando corretamente a data no banco
    4. PHP MySQL CRUD
    5. PHP-MYSQL: Conectando ao banco de dados via PDO – PHP Data Objects