programax 0 Denunciar post Postado Novembro 29, 2010 Bom dia pessoal!! estou usando o MYSQL, e estouprecisando muito de ajuda na junção substr() bem o sistema e o seguinte..fiz um INSERT INTO para inserir datas na tabela aditivo..no formato do MYSQL 0000-00-00.. e agora preciso visualizar esssas datas no formato 00/00/0000. fiz assim: <?php $sql3= "SELECT * FROM aditivo"; $query3= mysql_query($sql3); // mysql_query fazendo uma consulta no MYSQL while ($resultado3 = mysql_fetch_array($query3) ) // varredura dos dados da tabela com fetch_array { $dia= substr($resultado3[data_inicial], 0, 2) $mes= substr($resultado3[data_inicial], 3, 2)//da erro nessa linhaa. $ano= substr($resultado3[data_inicial], 6, 4) $resultado3[nova_data_inicial]= $dia."/".$mes."/".$ano $dia= substr($resultado3[data_final], 0, 2) $mes= substr($resultado3[data_final], 3, 2) $ano= substr($resultado3[data_final], 6, 4) $resultado3[nova_data_final]= $dia."/"_.$mes."/".$ano print" <table width= 20% border=1 align=left cellpadding=10%> <h2 align=center>Aditivo</h2> <tr><td> N°Aditivo</td> </tr> <tr><td> Data Inicial</td> </tr> <tr><td> Data Final </td></tr> </table> <table width= 20% border=1 align=left cellpadding=10%> <tr><td> $resultado3[id_aditivo] </td></tr> <tr><td> $resultado3[nova_data_inicial] </td></tr> <tr><td> $resultado3[nova_data_finalal] </td></tr> </table> "; } ?> so q esta dando erro: Parse error: parse error, unexpected T_VARIABLE in C:\Arquivos de programas\EasyPHP 2.0b1\www\ISSEC\vizualizar.php on line 118 Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Novembro 29, 2010 seu script: $dia= substr($resultado3[data_inicial], 0, 2) $mes= substr($resultado3[data_inicial], 3, 2)//da erro nessa linhaa. $ano= substr($resultado3[data_inicial], 6, 4) $resultado3[nova_data_inicial]= $dia."/".$mes."/".$ano $dia= substr($resultado3[data_final], 0, 2) $mes= substr($resultado3[data_final], 3, 2) $ano= substr($resultado3[data_final], 6, 4) $resultado3[nova_data_final]= $dia."/"_.$mes."/".$anoO erro mostrado está aqui:$mes= substr($resultado3[data_inicial], 3, 2) Como você não usou o separador de instrução o interpretador não intendeu que que $ano= substr($resultado3[data_inicial], 6, 4) era outra instrução. É comum esse tipo de erro acontecer. $mes= substr($resultado3[data_inicial], 3, 2);//da erro nessa linhaa. $ano= substr($resultado3[data_inicial], 6, 4); $resultado3[nova_data_inicial]= $dia."/".$mes."/".$ano; $dia= substr($resultado3[data_final], 0, 2); $mes= substr($resultado3[data_final], 3, 2); $ano= substr($resultado3[data_final], 6, 4); Compartilhar este post Link para o post Compartilhar em outros sites
programax 0 Denunciar post Postado Novembro 29, 2010 o separador q você diz e ; eu tb achei q era .. mas tanto faz.. da erro tambem com ";" e agora oq eu faço? Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Novembro 29, 2010 Boa noite!! $dia = substr($resultado3['data_final'], 8, 2); $mes = substr($resultado3['data_final'], 5, 2); $ano = substr($resultado3['data_final'], 0, 4); $nova_data = $dia."/".$mes."/".$ano; ou $nova_data = substr($resultado3['data_final'], 8, 2)."/".substr($resultado3['data_final'], 5, 2)."/".substr($resultado3['data_final'], 0, 4); Flw Abraço Compartilhar este post Link para o post Compartilhar em outros sites
programax 0 Denunciar post Postado Novembro 30, 2010 cara realmente eu tinha pegado as posições erradas do formato mysql..mas eu ñ posso guarda em uma variavem Só.. pq eu estou num WHILE FETCH ARRAY armazenando em uma variavel so.. while ($resultado3 = mysql_fetch_array($query3) ) // varredura dos dados da tabela com fetch_array { $dia= substr($resultado3[data_inicial], 8, 2); $mes= substr($resultado3[data_inicial], 5, 2); $ano= substr($resultado3[data_inicial], 0, 4); $resultado3[nova_data_inicial]= $dia."/".$mes."/".$ano; $dia= substr($resultado3[data_final], 8, 2); $mes= substr($resultado3[data_final], 5, 2); $ano= substr($resultado3[data_final], 0, 4); $resultado3[nova_data_final]= $dia."/".$mes."/".$ano; print" <table width= 20% border=1 align=left cellpadding=10%> <h2 align=center>Aditivo</h2> <tr><td> N°Aditivo</td> </tr> <tr><td> Data Inicial</td> </tr> <tr><td> Data Final </td></tr> </table> <table width= 20% border=1 align=left cellpadding=10%> <tr><td> $resultado3[id_aditivo] </td></tr> <tr><td> $resultado3[nova_data_inicial] </td></tr> <tr><td> $resultado3[nova_data_finalal] </td></tr> </table> "; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Novembro 30, 2010 Não entendi ??? Mas ae funcionou?? Abrx Compartilhar este post Link para o post Compartilhar em outros sites
programax 0 Denunciar post Postado Novembro 30, 2010 ñ funcionou erro: Notice: Use of undefined constant data_inicial - assumed 'data_inicial' in C:\Arquivos de programas\EasyPHP 2.0b1\www\ISSEC\vizualizar.php on line 115 Notice: Use of undefined constant data_inicial - assumed 'data_inicial' in C:\Arquivos de programas\EasyPHP 2.0b1\www\ISSEC\vizualizar.php on line 116 Notice: Use of undefined constant data_inicial - assumed 'data_inicial' in C:\Arquivos de programas\EasyPHP 2.0b1\www\ISSEC\vizualizar.php on line 117 Notice: Use of undefined constant nova_data_inicial - assumed 'nova_data_inicial' in C:\Arquivos de programas\EasyPHP 2.0b1\www\ISSEC\vizualizar.php on line 118 Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Novembro 30, 2010 substitua: $resultado3[nova_data_inicial]= $dia."/".$mes."/".$ano;por: $nova_data_inicial = $dia."/".$mes."/".$ano; e substitua: $resultado3[nova_data_final]= $dia."/".$mes."/".$ano;por: $nova_data_final = $dia."/".$mes."/".$ano; Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 30, 2010 todo esse malabarismo com substr() é desnecessario. você pode usar um DATE_FORMAT() do MySQL, para fazer a data ficar no formato dd/mm/YYYY Compartilhar este post Link para o post Compartilhar em outros sites
programax 0 Denunciar post Postado Novembro 30, 2010 mas se eu armazenar a nova data em $nova_data_inicial = $dia."/".$mes."/".$ano; em vez de$resultado3[nova_data_inicial]= $dia."/".$mes."/".$ano; como eu vou imprimir na tela se eu entou dentro do WHILE e $resultado3 = mysql_fetch_array($query3) a nova data tem q ser armazanada no campo[data_inicial]e [data_final] $resultado3[data_inicial]e $resultado3[data_final] dessa forma q você disse ñ deu certo.. $resultado3[nova_data_inicial]= $dia."/".$mes."/".$ano; por: $nova_data_inicial = $dia."/".$mes."/".$ano; e substitua: $resultado3[nova_data_final]= $dia."/".$mes."/".$ano; por: $nova_data_final = $dia."/".$mes."/".$ano; o meu ja aasim mas da o mesmo erro: <?php $sql3= "SELECT * FROM aditivo"; $query3= mysql_query($sql3); // mysql_query fazendo uma consulta no MYSQL while ($resultado3 = mysql_fetch_array($query3) ) // varredura dos dados da tabela com fetch_array { $dia= substr($resultado3[data_inicial], 8, 2); $mes= substr($resultado3[data_inicial], 5, 2); $ano= substr($resultado3[data_inicial], 0, 4); $resultado3[nova_data_inicial]= $dia."/".$mes."/".$ano; $dia= substr($resultado3[data_final], 8, 2); $mes= substr($resultado3[data_final], 5, 2); $ano= substr($resultado3[data_final], 0, 4); $resultado3[nova_data_final]= $dia."/".$mes."/".$ano; print" <table width= 20% border=1 align=left cellpadding=10%> <h2 align=center>Aditivo</h2> <tr><td> N°Aditivo</td> </tr> <tr><td> Data Inicial</td> </tr> <tr><td> Data Final </td></tr> </table> <table width= 20% border=1 align=left cellpadding=10%> <tr><td> $resultado3[id_aditivo] </td></tr> <tr><td> $resultado3[nova_data_inicial] </td></tr> <tr><td> $resultado3[nova_data_finalal] </td></tr> </table> "; } ?> substitua: $resultado3[nova_data_inicial]= $dia."/".$mes."/".$ano;por: $nova_data_inicial = $dia."/".$mes."/".$ano; e substitua: $resultado3[nova_data_final]= $dia."/".$mes."/".$ano;por: $nova_data_final = $dia."/".$mes."/".$ano; ou eu entedi errado!! Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 30, 2010 olha... <?php $sql3= "SELECT id_aditivo, DATE_FORMAT(data_inicial, '%d/%m/%Y') AS data_inicial, DATE_FORMAT(data_final, '%d/%m/%Y') AS data_final FROM aditivo"; $query3= mysql_query( $sql3 )or die( mysql_error() ); while( $resultado3 = mysql_fetch_assoc($query3) ) // varredura dos dados da tabela com fetch_array { echo'<table width= 20% border=1 align=left cellpadding=10%> <h2 align=center>Aditivo</h2> <tr><td> N°Aditivo</td> </tr> <tr><td> Data Inicial</td> </tr> <tr><td> Data Final </td></tr> </table> <table width= 20% border=1 align=left cellpadding=10%> <tr><td>'.$resultado3['id_aditivo'].'</td></tr> <tr><td>'.$resultado3['data_inicial'].'</td></tr> <tr><td>'.$resultado3['data_final'].'</td></tr> </table>'; } ?> bem mais simples :lol: Compartilhar este post Link para o post Compartilhar em outros sites
programax 0 Denunciar post Postado Dezembro 1, 2010 fiz desse jeito q você disse ai.. mas eu insiro o varlor nas datas com INSERT e no SELECT ficam todas em 00/00/0000... ñ inporta a data q eu estabelecer se for 10/12/2010 ficam todas em 00/00/0000... pq sera? no INSERT eu usei o sub-tr.. Compartilhar este post Link para o post Compartilhar em outros sites
Hohenheim 0 Denunciar post Postado Dezembro 1, 2010 programax, da uma olhada no banco e ve se as datas estão sendo realmente cadastradas... se você tiver o campo no formato date e não estiver inserindo corretamente no formato YYYY-MM-DD ele não vai aceitar... eu já tive problemas desse tipo, o campo no banco era preenchido dessa forma 0000-00-00... att: Galera, vou aproveitar o tópico do amigo, e postar uma dúvida que tive relacionada a essa questão, gostaria de saber se podem me ajudar, principalmente o William Bruno a duvida é com a função DATE_FORMAT() do mysql eu tenho o seguinte código: <?php include 'conC.php'; //setando variaveis $dataInicio = $_POST['DataInicio']; $dataFinal = $_POST['DataFim']; //consulta $consulta = "SELECT * FROM entradas where DiaEntrada BETWEEN '$dataInicio' and '$dataFinal' ORDER BY DiaEntrada ASC"; $resultado = mysql_query($consulta); while ($row = mysql_fetch_array($resultado)){ echo "Dia " . DATE_FORMAT()$row['DiaEntrada'] . " o valor foi de: " . $row['Valor'] . "<br />"; } Até aqui, ele faz o que se propõe... procurar no banco entre as datas ente $dataInicio e $dataFinal Porem se eu incluo a função DATE_FORMAT()ele para de realizar a busca... a linha da consulta esta dessa forma: $consulta = "SELECT idEntrada, DATE_FORMAT(DiaEntrada, '$d/$m/$Y') as DiaEntrada FROM entradas where DiaEntrada BETWEEN '$dataInicio' and '$dataFinal' ORDER BY DiaEntrada ASC";Acho que não está muito certo issoAlguem tem alguma dica? grato Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Dezembro 1, 2010 Amigo programax data em banco de dados tem de ser no formato 0000-00-00 e não 00/00/0000. Utilize a função gigantesca abaixo para converter nos formatos necessários ^_^ /**** * @param $data - a data em si * @param $se - o separador da data * @param $ss - o separador que deverá conter na data ****/ function converteData($data, $se, $ss){ return implode($ss, array_reverse(explode($se, $data))); } Ex: $data1 = '26/11/2010'; $data2 = '2010-05-30'; $nData1 = converteData($data1,'/','-'); $nData2 = converteData($data2,'-','/'); echo $nData1.'<br />'.$nData2; Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
programax 0 Denunciar post Postado Dezembro 1, 2010 esse condigo de inserção esta certo!! <?php ini_set('display_errors', true); error_reporting(E_ALL); include ("conexao.php"); $data_inicial = $_POST['data_inicial']; $dia= substr($data_inicial, 0, 2); $mes= substr($data_inicial, 3, 2); $ano= substr($data_inicial, 6, 4); $nova_data_inicial = $ano."-".$mes."-".$dia; $data_final = $_POST['data_final']; $dia= substr($data_inicial, 0, 2); $mes= substr($data_inicial, 3, 2); $ano= substr($data_inicial, 6, 4); $nova_data_final = $ano."-".$mes."-".$dia; $recebe_id= $_POST['id_cont']; $sql=" INSERT INTO aditivo (data_inicial, data_final, chave_aditivo_fk ) VALUES ('$nova_data_inicial ' , '$nova_data_final' , '$recebe_id')"; $query = mysql_query($sql) or die (mysql_error()); header("location:index.php"); ?> mas agora fui no banco e esta tudo 0000/00/00.... e alguma coisa no DATA FORMAT.. <?php $sql3= "SELECT id_aditivo, DATE_FORMAT(data_inicial, '%d/%m/%Y') AS data_inicial, DATE_FORMAT(data_final, '%d/%m/%Y') AS data_final FROM aditivo"; $query3= mysql_query( $sql3 )or die( mysql_error() ); while( $resultado3 = mysql_fetch_assoc($query3) ) // varredura dos dados da tabela com fetch_array { echo'<table width= 20% border=1 align=left cellpadding=2> <h2 align=center>Aditivo</h2> <tr><td align=left> N°aditivo</td> </tr> <tr><td align=left> Data inicial</td> </tr> <tr><td align=left> Data final </td></tr> </table> <table width= 20% border=1 align=float cellpadding=5%> <tr><td>'.$resultado3['id_aditivo'].'</td></tr> <tr><td>'.$resultado3['data_inicial'].'</td></tr> <tr><td>'.$resultado3['data_final'].'</td></tr> </table> '; } ?> mas com o SUB-STR da pra fazer!!! função ñ!! mas no INSET INTO aditivo ta certo??? pq no bando ta tudo 0000/00/00 Compartilhar este post Link para o post Compartilhar em outros sites
Hohenheim 0 Denunciar post Postado Dezembro 1, 2010 Cara, o select não causa alteração no banco... Se teu banco tá com o cadastro 0000-00-00 deve ser seu insert que tá dando erro, experimenta tirar o DATE_FORMAT() e fazer uma nova inserção Compartilhar este post Link para o post Compartilhar em outros sites
programax 0 Denunciar post Postado Dezembro 1, 2010 deixei comentado o SELECT... no INSERT INTO ..coloquei a data 10112010 e fui la no banco e estava:2010-12-10.. o mysql esta pegando a data errada pois eu passe: 10112010 Compartilhar este post Link para o post Compartilhar em outros sites
Hohenheim 0 Denunciar post Postado Dezembro 1, 2010 Programax passe a data para o mysql no formato - 0000-00-00 com os traços também... eu pelo menos faço assim aqui aplique a função que o amigo Periscuelo mostrou ali para formatar a data que o usuario digitar no campo para formata-la dessa forma e depois use a mesma função quando for resgatar ela no banco @edit: A função do amigo Periscuelo funcionou perfeitamente para o meu caso, resolvi o exemplo que postei com ela, só não sei se é a melhor solução... segue o código: <?php include 'conC.php'; //setando variaveis $dataInicio = $_POST['DataInicio']; $dataFinal = $_POST['DataFim']; //consulta $consulta = "SELECT * FROM entradas where DiaEntrada BETWEEN '$dataInicio' and '$dataFinal' ORDER BY DiaEntrada ASC"; /**** * @param $data - a data em si * @param $se - o separador da data * @param $ss - o separador que deverá conter na data ****/ function converteData($data, $se, $ss){ return implode($ss, array_reverse(explode($se, $data))); } //$total = $total + $row['Valor']; $resultado = mysql_query($consulta); while ($row = mysql_fetch_array($resultado)){ echo "Dia " . $nData = converteData($data =($row['DiaEntrada']), '-', '/') . " o valor foi de: " . $row['Valor'] . "<br />"; } Compartilhar este post Link para o post Compartilhar em outros sites
programax 0 Denunciar post Postado Dezembro 2, 2010 Amigos eu agradesso a ajuda mas eu preciso fazer com SUB-STR ...e ñ com funçao..por favor me ajudem!! pagina de inserção das datas: <?php ini_set('display_errors', true); error_reporting(E_ALL); include ("conexao.php"); $data_inicial = $_POST['data_inicial']; $dia= substr($data_inicial, 0, 2); $mes= substr($data_inicial, 3, 2); $ano= substr($data_inicial, 6, 4); $nova_data_inicial = $ano."-".$mes."-".$dia; $data_final = $_POST['data_final']; $dia= substr($data_inicial, 0, 2); $mes= substr($data_inicial, 3, 2); $ano= substr($data_inicial, 6, 4); $nova_data_final = $ano."-".$mes."-".$dia; $recebe_id= $_POST['id_cont']; $sql=" INSERT INTO aditivo (data_inicial, data_final, chave_aditivo_fk ) VALUES ('$nova_data_inicial ' , '$nova_data_final' , '$recebe_id')"; $query = mysql_query($sql) or die (mysql_error()); header("location:index.php?link=1"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Dezembro 2, 2010 Amigo programax, me tire uma duvida. Porque você precisa fazer com substr se a função resolve? Se for um trabalho/exercício/prova da faculdade eu aconselho a você estudar a função substr e estudar mais lógica de programação. A intenção do fórum é ajudar as pessoas a solucionar problemas com praticidade e a encontrar informação para melhorar seu conhecimento e não fazer todo o trabalho por elas. ^_^ Já lhe foram apresentadas diversas soluções. Basta se esforçar um pouquinho e pesquisar. Caso esteja interessado, Freelances é em outra sessão. Caso o seu caso não seja freelance acesse o link abaixo para maiores informações. http://www.php.net/substr Abraços. Compartilhar este post Link para o post Compartilhar em outros sites