Rbuch Postado Outubro 6, 2007 Denunciar Share Postado Outubro 6, 2007 (editado) Pessoal sou iniciante no PHP e estou com dificuldades em inserir datas no meu BD no padrão dd/mm/yyyy , a visualização está correta , mas para o usuário inserir ele tem que inserir no padrão americano .Como resolvo isso?Segue a minha tabelalocal varchar(50) latin1_general_ci Não atividade varchar(200) latin1_general_ci Não horario varchar(30) latin1_general_ci Não data date Não 0000-00-00 O meu script para inseririf ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) { $insertSQL = sprintf("INSERT INTO diaria (`local`, atividade, horario, `data`) VALUES (%s, %s, %s, %s)", GetSQLValueString($_POST['local'], "text"), GetSQLValueString($_POST['atividade'], "text"), GetSQLValueString($_POST['horario'], "text"), GetSQLValueString($_POST['data'], "date")); mysql_select_db($database_insere, $insere); $Result1 = mysql_query($insertSQL, $insere) or die(mysql_error()); $insertGoTo = "index.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); } mysql_select_db($database_insere, $insere); $query_Recordset1 = "SELECT * FROM diaria"; $Recordset1 = mysql_query($query_Recordset1, $insere) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1); ?>Agradeço desde já Editado Outubro 6, 2007 por ESerra Utilize as tags [code] [/code] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 6, 2007 Denunciar Share Postado Outubro 6, 2007 Só se você colocar o campo como sendo CHAR10, pois DATE só aceita o formato unix (aaaa-mm-dd)... não tem como mudar isso, o que você pode fazer é pegar o valor que o usuário digitar no form (dd/mm/aaaa) e utilizar o seguinte:implode('-',array_reverse(explode('/',$OQUEVEIODOFORM)));isso vai transformar dd/mm/aaaa em aaaa-mm-dd... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rbuch Postado Outubro 6, 2007 Autor Denunciar Share Postado Outubro 6, 2007 Cara desculpa a ignorancia mas aonde eu coloco "implode('-',array_reverse(explode('/',$OQUEVEIODOFORM)));"e o que voce quiz dizer sobre OQUEVEIODOFORM? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Outubro 6, 2007 Denunciar Share Postado Outubro 6, 2007 (editado) Não sei se funciona, mas tente mudar o collation do campo para utf8_general_ci Editado Outubro 6, 2007 por Renato Penna Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rbuch Postado Outubro 6, 2007 Autor Denunciar Share Postado Outubro 6, 2007 A visualização está certa ex. 06/10/2007 o problema esta no formulario para inserir as datas , para funcionar o usuário esta tendo que inserir no formato americano ex. 2007/10/06 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 6, 2007 Denunciar Share Postado Outubro 6, 2007 Isso dai foi gerado no dreamweaver?... O que você tem que fazer é:$data = $_POST['data']; $data = implode('-',array_reverse(explode('/',$data))); $insertSQL = sprintf("INSERT INTO diaria (`local`, atividade, horario, `data`) VALUES (%s, %s, %s, %s)", GetSQLValueString($_POST['local'], "text"), GetSQLValueString($_POST['atividade'], "text"), GetSQLValueString($_POST['horario'], "text"), GetSQLValueString($data, "date")); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rbuch Postado Outubro 7, 2007 Autor Denunciar Share Postado Outubro 7, 2007 Foi no dreamweaver sim , e funcionou oque você passou, mas em cima dessa tabela que eu tenho como eu faço para os usuários visualizarem somente os registros inseridos no dia corrente?Faleu!!!!,E Obrigado a todos pela ajuda Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 7, 2007 Denunciar Share Postado Outubro 7, 2007 SELECT * FROM tabela WHERE data = '$data'Onde $data você cria com o date. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rbuch Postado Outubro 7, 2007 Autor Denunciar Share Postado Outubro 7, 2007 Não deu certo não trouxe nenhum registro. A minha pesquisa esta assim"SELECT *, DATE_FORMAT(data, '%d/%m/%Y') as data FROM diaria ORDER BY diaria.id DESC"Grato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 7, 2007 Denunciar Share Postado Outubro 7, 2007 Cadê a cláusula WHERE? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rbuch
Pessoal sou iniciante no PHP e estou com dificuldades em inserir datas no meu BD no padrão dd/mm/yyyy , a visualização está correta , mas para o usuário inserir ele tem que inserir no padrão americano .Como resolvo isso?
Segue a minha tabela
local varchar(50) latin1_general_ci Não
atividade varchar(200) latin1_general_ci Não
horario varchar(30) latin1_general_ci Não
data date Não 0000-00-00
O meu script para inserir
Agradeço desde já
Editado por ESerraUtilize as tags [code] [/code]
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
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.