Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Robinho de Morais

Salvar data de variavel no banco mysql

Recommended Posts

Pessoal, pesquisei, pesquisei, usei tudo q achei na net mas não consegui...

tenho um campo no banco mysql chamando dtinclusao, é uma data determinada pelo o usurio, então não é a data atual do sistema ou servidor.

Ai fiz dessa maneira em baixo:

 

function INSERIRDATA($data)
{
$data = "13/12/2010";

$array = explode("/", $data);
$dia = $array[0];
$mes = $array[1];
$ano = $array[2];

$dtinclusao = $ano."-".$mes."-".$dia;

return "Data: ".$dtinclusao;


}

ai beleza me retornou no formato 2010-12-13, mas ai eu fiz assim para o usuario informar a data:

 

 

function INSERIRDATA($data)
{

$array = explode("/", $data);
$dia = $array[0];
$mes = $array[1];
$ano = $array[2];

$dtinclusao = $ano."-".$mes."-".$dia;

return "Data: ".$dtinclusao;


}

 

mas me retorna assim

 

"Data: --13"

 

 

alguma coisa está entranha na hora de recebee o valor na variavel

Compartilhar este post


Link para o post
Compartilhar em outros sites

seguinte:

 

function INSERIRDATA($data)
{
    var_dump( $data );

 

dá uma olhada nessa:

function converte_data( $data ){
if( preg_match('/([0-9]+)-([0-9]+)-([0-9]+)/', $data ) )
	return preg_replace( '/([0-9]+)-([0-9]+)-([0-9]+)/', '$3/$2/$1', $data );
else
	return preg_replace( '/([0-9]+)\/([0-9]+)\/([0-9]+)/', '$3-$2-$1', $data );
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
use o Responder Azul: respondery.png

ou a 'Resposta Rápida'.

 

Então a 'entrada' está incorreta.

 

tua variavel $data está com um valor incorreto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tá não, acho que descobri o problema, mas nao sei resolver para o amfphp,

percebi que simbolos se eu digito nao aparece no amfphp, recebo na variavel mas aparece, isso não sei o porque!

ai também percebi que se eu digitar assim:

 

14/12/2010 = aparece só o 14

assim:

14 12 2010 = aparece somente o 14

assim:

14122010 = ai aparece "14122010"

 

o porque disso ?

 

alguem pode me ajudar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja:

<?php
function converte_data( $data ){
if( preg_match('/([0-9]+)-([0-9]+)-([0-9]+)/', $data ) )
	return preg_replace( '/([0-9]+)-([0-9]+)-([0-9]+)/', '$3/$2/$1', $data );
else
	return preg_replace( '/([0-9]+)\/([0-9]+)\/([0-9]+)/', '$3-$2-$1', $data );
}

echo converte_data( '14/12/2010' ),'<br />';//2010-12-14
echo converte_data( '14 12 2010' ),'<br />';//14 12 2010
echo converte_data( '2010-12-14' ),'<br />';//14/12/2010

a saída ocorre normalmente. O problema não está na função proposta.

 

adicione o var_dump()

function converte_data( $data ){
var_dump( $data ); exit();

faça alguns testes, e me diga oque retornar.

 

 

edit:

incrementei a ER para cobrir as bizarrices:

 

<?php
function converte_data( $data ){


if( preg_match('/([0-9]+)-([0-9]+)-([0-9]+)/', $data ) )
	return preg_replace( '/([0-9]+)-([0-9]+)-([0-9]+)/', '$3/$2/$1', $data );
else
	return preg_replace( '/([0-9]{2})(\/|\s|\.)?([0-9]{2})(\/|\s|\.)?([0-9]{4})/', '$5-$3-$1', $data );
}

echo converte_data( '14/12/2010' ),'<br />';//2010-12-14
echo converte_data( '14 12 2010' ),'<br />';//2010-12-14
echo converte_data( '14122010' ),'<br />';//2010-12-14
echo converte_data( '14.12.2010' ),'<br />';//2010-12-14
echo converte_data( '2010-12-14' ),'<br />';//14/12/2010

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu peguei e fiz, mas quando abri direto no broswer da internet dá esse erro...

 

Parse error: syntax error, unexpected T_ECHO, expecting T_FUNCTION in C:\xampp\htdocs\AdmInfinity\bin-debug\amfphp\services\testedata.php on line 63

 

parece que é o echo !

Compartilhar este post


Link para o post
Compartilhar em outros sites

mostre o que fez, pq se não fica impossível adivinhar onde você errou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz assim

 

 

function converte_data( $data ){               
if( preg_match('/([0-9]+)-([0-9]+)-([0-9]+)/', $data ) )                
return preg_replace( '/([0-9]+)-([0-9]+)-([0-9]+)/', '$3/$2/$1', $data );       
else                
return preg_replace( '/([0-9]{2})(\/|\s|\.)?([0-9]{2})(\/|\s|\.)?([0-9]{4})/', '$5-$3-$1', $data );
}


echo converte_data( '14/12/2010' ),'<br />';//2010-12-14
echo converte_data( '14 12 2010' ),'<br />';//2010-12-14
echo converte_data( '14122010' ),'<br />';//2010-12-14
echo converte_data( '14.12.2010' ),'<br />';//2010-12-14
echo converte_data( '2010-12-14' ),'<br />';//14/12/2010

Compartilhar este post


Link para o post
Compartilhar em outros sites

não há nenhum erro de sintaxe neste trecho.

 

poste os arredores da linha 63

testedata.php on line 63

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian nesse link eu coloquei o arquivo php, dá uma olhada

 

 

testedata

<?php
$server="localhost";
$login="root";
$senha="";
$banco="adminfinity";
$con = mysql_connect($server,$login,$senha);
mysql_select_db($banco,$con);

class testedata{



function INSERIRDATA($data)
{
//	$data = date("Y/m/d h:i:s");
//$data = "13/12/2010";

var_dump( $data );


$array = explode("/", $data);
$dia = $array[0];
$mes = $array[1];
$ano = $array[2];

$dtinclusao = $ano."-".$mes."-".$dia;

return "Data: ".$dtinclusao;


//$sql=mysql_query("insert into solicitacoes ($dtinclusao)values('$dtinclusao')");

 //  $ultimo_codigo = mysql_insert_id();  
//return $ultimo_codigo;		
}

function testando($dtNascimento)
{

//$dtNascimento = '20/10/2010';

// $dt = explode("/",$dtNascimento); 
// $dtNascimento = $dt[2]."-".$dt[1]."-".$dt[0];  

return $dtNascimento; 

}







function converte_data( $data )
{               

var_dump( $data ); exit();

if( preg_match('/([0-9]+)-([0-9]+)-([0-9]+)/', $data ) )                
return preg_replace( '/([0-9]+)-([0-9]+)-([0-9]+)/', '$3/$2/$1', $data );       
else                
return preg_replace( '/([0-9]{2})(\/|\s|\.)?([0-9]{2})(\/|\s|\.)?([0-9]{4})/', '$5-$3-$1', $data );


echo converte_data( '14/12/2010' ),'<br />';//2010-12-14
echo converte_data( '14 12 2010' ),'<br />';//2010-12-14
echo converte_data( '14122010' ),'<br />';//2010-12-14
echo converte_data( '14.12.2010' ),'<br />';//2010-12-14
echo converte_data( '2010-12-14' ),'<br />';//14/12/2010

}








}




?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

não faz sentido ter um echo depois do return do metodo da classe.

 

estude php, teu código está horrivel.

procure indentar, e procure entender oque é uma função/método

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me desculpe, mas isso que estou fazendo ai é uns testes para entender, entao por isso que está de qualquer jeito, estou pesquisando estudando um pouco nos tempos que tenho, a hora que eu entender um pouco ai que vou procurar a ficar identando os codigos, mas mesmo assim.

 

Muito Obrigado pela ajuda, sei que esse forum tem muitos tópicos com mais importancia do que esse que estou fazendo, mas quiz procurar um forum para ir apredenddo aos poucos também, pois além dos estudos que estou inciando, estou aqui para questionar duvidas.

 

Me desculpe novamente por tomar tempo do pessoal aqui do forum.

 

Abraços e obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Robinhocne,

Não precisa se desculpar. Uma das funções do fórum é solucionar dúvidas e qualquer pergunta é relevante. Os usuários do fórum ajudarão no que for preciso. ;)

 

Então, o código que você postou não tem nenhum erro, apesar de estar mal formatado e com algumas más práticas. Você deve estar recebendo "Data: --13" poque a entrada fornecida não deve estar no formato esperado pela função/método INSERIRDATA(). Mostre como você usou ela. Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

class Data
{
function converte_data( $data )
{
	if( preg_match('/([0-9]+)-([0-9]+)-([0-9]+)/', $data ) )                
		return preg_replace( '/([0-9]+)-([0-9]+)-([0-9]+)/', '$3/$2/$1', $data );       
	else                
		return preg_replace( '/([0-9]{2})(\/|\s|\.)?([0-9]{2})(\/|\s|\.)?([0-9]{4})/', '$5-$3-$1', $data );
}
}

$data = new Data();
echo $data->converte_data( '14/12/2010' ),'<br />';//2010-12-14
echo $data->converte_data( '14 12 2010' ),'<br />';//2010-12-14
echo $data->converte_data( '14122010' ),'<br />';//2010-12-14
echo $data->converte_data( '14.12.2010' ),'<br />';//2010-12-14
echo $data->converte_data( '2010-12-14' ),'<br />';//14/12/2010

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz da maneira que o William me passou e rodando para fazer o teste deu certo, mas vi que minha dor de cxabeça é com o amfphp, vou entrar em contato com um professor que fiz umas aulas que creio que ele vai saber o que o amfphp está fazendo porque o valor sou eu que estou passando e estou digitando certo, mesmo se eu pego de uma variavel também não dá ele nao aceita espaço ai corta, nao aceita barra se nao corta,

 

Obrigado pela ajuda, assim que eu tiver um resultado vou informar aqui no forum, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.