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

Php+mysql


handersonskt

Pergunta

Criei um sistema de postagens em php+MySQL, quero lista um banco de noticias por data, tenho um campo chamado "data", como listo? Tenho que modificar para date no MySQL? E como faço para mostrar a data da forma correta e não invertida.

No MySQL o padrão é 0000-00-00 quero que mostre 00-00-0000

Grato caso possam me ajudar,

Obrigado! huh.gif

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Não sei se é bem isso mas lá vai!!!

Eu fiz um sistema assim para o meu site!! No caso eu trago as 7 últimas notícias (lógico que as mais recentes)!! tongue.gif

<?php
  $query = mysql_query("select distinct new_data,new_href,new_descricao from news order by new_data desc LIMIT 0,7");
  while ($retorno = mysql_fetch_array($query)) {
    $data = date("d/m/Y",strtotime($retorno[0])); // repare que aqui eu converto o $retorno[0] para data e formato com a função date();
    echo "<strong>$data</strong><br>";
    echo "<a href='$retorno[1]' target='_blank'>$retorno[2]</a>";
    echo "<br>--------------------------------<br>";
  }
?>

Exemplo de como ficaria:

06/10/2005

Nova micro-bateria de lítio estimula terminações nervosas

--------------------------------

05/10/2005

MEMS chegam aos leitores de códigos de barras

--------------------------------

E por aí vai...

Espero que tenha ajudado!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, isso depende da tua base de dados... como q tu estás salvando as datas??? inteiro, timestamp? date? time???

Eu particularmente me quebri uma vez porque estava usando três campos... um para dia, outro para mes e o último para ano, cara, me arrependi até o último fio do bigode... fiz um if tão grande... e perdi muito tempo nisso... agora tudo que contém datas q n sejá anteriores ao timestamp... eu converto com mktime e salvo como timestamp... depois pra buscar fica bem mais fácil....

Mas ae vê ae q a gente ve como que da pra fazer...

Link para o comentário
Compartilhar em outros sites

  • 0

Eu particularmente me quebri uma vez porque estava usando três campos...

me arrependi até o último fio do bigode... fiz um if tão grande... e perdi muito tempo nisso... agora tudo que contém datas q n sejá anteriores ao timestamp... eu converto com mktime e salvo como timestamp... depois pra buscar fica bem mais fácil....

cara eu me matei porque tava usando VARCHAR, aí eu tentei usar DATE mas não conseguia converter. Depois de muita porrada eu descobri que a função date() do PHP espera uma data ao converter então depois de apanhar mais um pouquinho consegui fazer:

$data = date("d/m/Y",strtotime($retorno[0]));

Faz a variável $data receber a data formatada de um select, passando o $retorno[0] de string para DATE pra poder usar no date().

Foi sufoco mas consegui...

Link para o comentário
Compartilhar em outros sites

  • 0

  $newdata = date('Y-d-m',strtotime($newdata));
  mysql_query("insert into news (new_codigo,new_data,new_descricao) values ($newcodigo,'$newdata','$newdescricao')");

Intão eu to fazendo errado??? porque eu simplesmente converto num formato q fungo atendendo as minhas necessidades!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Poxa, eu não consegui fazer.

Assim eu tenho os campos:

id

titulo

subtitulo

revista

data

autor

texto

ver

e o comando esta iniciando assim:

<?php

include "conexao.php";

function listaregistros() {

include "conexao.php";

$sql = "select * from artigos order by data";

$exe = mysql_query($sql,$conect);

if ($exe != '') {

$totreg = mysql_num_rows($exe);

if ($totreg != 0) {

$index = 0;

echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";

while ($index < $totreg) { $dados = mysql_fetch_array($exe);

echo "<tr>";

echo "<td>";

echo "<div align='left'><font size='1' color='#006600' face='Verdana, Arial, Helvetica, sans-serif'>";

$tit = '<a href="editar.php?ver=';

$tit .= $dados['id'];

$tit .= '">';

$tit .= $dados['titulo'];

$tit .= ' </a>';

echo $tit;

echo "</font>";

echo "</font>";

echo "</td>";

echo "</tr>";

E aih vou listando o restante, mas no inicio, como devo acrescentar o comando?

Ae galera valeu por estar dando essa força.

Link para o comentário
Compartilhar em outros sites

  • 0

McBlade: está correto, strtotime converte uma string em timestamp wink.gif

handersonskt: (poots... tive q dar ctrl+c no nick heheh)

Velho, como que tu insere a data na base de dados? dd/mm/aaaa?

Cara, eu pergunto isso por que se tu for fazer algum cáculo com datas é muito mais fácil tu ter em timestamp do q qualquer outro formato e tb porque se tu tem no formato certinho do mysql é só chamar com order by data asc mesmo e puxar a data pelo date_format... n vou postar a sintaxe aqui porque eu n lembro... mas quando chegar em casa eu volto aqui e edito... podes catar no mysql.com/doc tb que tem... abraço

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

  • 0

Somente se você quiser que o usuário entre com algum outro formato... se ele digitar 2005-10-13 por exemplo, vai funcionar perfeitamete... agora se você quiser que o vivente entre com 13-10-2005 tu vais ter que "converter" para o formato do mysql... nada q uma explode() n resolva... biggrin.gif

Para a tua consulta retornar a data formatada como tinha dito, usa DATE_FORMAT() no MySql, podes ler mais neste link: http://dev.mysql.com/doc/refman/5.0/en/dat...-functions.html

Entâo, a tua consulta ficaria +/- assim:

$sql = "SELECT *, DATE_FORMAT('CAMPO_DATA', '%D/%M/%Y') AS `ndata` FROM `artigos` ORDER BY `ndata` ASC";

Agora para exibir a data formatada, utiliza:

echo $dados['campo_data']; //Formato 0000-00-00

echo $dados['ndata']; //Formato 00/00/0000

Obs.: tu tinhas esquecido de colocar ASC ou DESC após o campo do order by... derrepente por isso que não funcionava...

Qualquer coisa posta ae denovo...

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...