Ir para conteúdo
Fórum Script Brasil
  • 0

Banco de Dados


silvio.barra

Pergunta

Não estou conseguindo salvar no banco de dados.

-----------------------------Banco de dados----------------------------

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

CREATE TABLE IF NOT EXISTS `piloto2` (

`id` bigint(4) unsigned NOT NULL AUTO_INCREMENT,

`data_final` date NOT NULL,

`data_vencimento` date NOT NULL,

`dias` int(3) NOT NULL,

`status` varchar(11) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

----------------------------------Script--------------------------------

<html>

<head>

&lt;script language="javascript">

function muda(input1,input2){

palavra = input1.value;

if(palavra.length == 2){

input2.focus();

}

}

</script></head>

<body>

<form name="cadastro" method="post" action="" autocomplete="off">

<table width="600" border="0">

<tr>

<td width="262">Data da Emissão:

<input type="text" name="dia" size="2" maxlength="2" id="teste1" onkeydown="muda(this.form.teste1,this.form.teste2)">/

<input type="text" name="mes" size="2" maxlength="2" id="teste2" onkeydown="muda(this.form.teste2,this.form.teste3)">/

<input type="text" name="ano" size="3" maxlength="4" id="teste3"/>

<br>

<input name="enviar" type="submit" id="enviar" value="Enviar"><p>

<?php

include "conecta.php";

// Define os valores a serem usados

$data = date('d/m/Y');

$data_inicial = $data;

$dia = $_POST['dia'];

$mes = $_POST['mes'];

$ano = $_POST['ano'];

$data_final = $_POST['dia'].'/'.$_POST['mes'].'/'.$_POST['ano'];

$data_vencimento = $_POST['data_vencimento'];

$dias = $_POST['dias'];

$status = $_POST['status'];

//Calcula a data da emissão mais 360 dias

function geraTimes($data_final){

$temp = explode("/", $data_final);

return date("d/m/Y", mktime(0, 0, 0, $temp[1], $temp[0] + 360, $temp[2]));

}

// Cria uma função que retorna o timestamp de uma data no formato DD/MM/AAAA

function geraTimestamp($data) {

$partes = explode('/', $data);

return mktime(0, 0, 0, $partes[1], $partes[0], $partes[2]);

}

// Calcula a diferença de dias entre as duas datas:

$data_vencimento = geraTimes($data_final);

$time_inicial = geraTimestamp($data_inicial);

$time_final = geraTimestamp($data_vencimento);

$diferenca = $time_final - $time_inicial; // 19522800 segundos

$dias = (int)floor( $diferenca / (60 * 60 * 24)); // 360 dias

if ($dias < 0){

$status = "vencido";

}

if (($dias < 15) && ($dias >= 0)){

$status = "a vencer";

}

if ($dias >= 15){

$status = "em dias" ;

}

echo "<p>Data da Emissão: ".$data_final."<p>";

echo "<p>Data do Vencimento: ".$data_vencimento."<p>";

echo "<p>Números de dias: ".$dias."<p>";

echo "<p>Status: ".$status."<p>";

$data = date('d/m/Y');

$data_inicial = $data;

$dia = $_POST['dia'];

$mes = $_POST['mes'];

$ano = $_POST['ano'];

$data_final = $_POST['dia'].'/'.$_POST['mes'].'/'.$_POST['ano'];

$data_vencimento = $_POST['data_vencimento'];

$dias = $_POST['dias'];

$status = $_POST['status'];

$add = mysql_query("INSER INTO piloto2 (data_final, data_vencimento, dias, status) VALUES ('$data_final','$data_vencimento','$dias','$status')");

if ($add) {

echo 'Cadastro foi efetuado com sucesso';

} else {

echo 'Falha ao enviar dados, tente novamente!';

}

?>

</p></td></tr></table></form></body></html>

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Troca:

$add = mysql_query("INSER INTO piloto2 (data_final, data_vencimento, dias, status) VALUES ('$data_final','$data_vencimento','$dias','$status')");

Por:

$add = mysql_query("INSER INTO piloto2 (data_final, data_vencimento, dias, status) VALUES ('$data_final','$data_vencimento','$dias','$status')")OR DIE(mysql_error());

Isso vai te dar o erro que está acontecendo...

Link para o comentário
Compartilhar em outros sites

  • 0

Tente colocar assim:

mysql_query("INSER INTO piloto2 (data_final, data_vencimento, dias, status) VALUES ('".$data_final."','".$data_vencimento."','".$dias."','".$status."')");

O erro pode estar acontecendo porque o campo data está como date e com isso o seu código pode estar levando para o banco o $data_final e $data_vencimento como string e não como a data. Lembre-se de que que se a data_final e data_vencimento não estiver no formato YYY-MM-DD poderá dar problemas.

abs

Editado por MTavares
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...