Jump to content
Fórum Script Brasil
  • 0

Banco de Dados


silvio.barra

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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

Edited by MTavares
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...