Autor Tópico: [PHP] Inserir data na tabela para depois ordenar  (Lida 3377 vezes)

Offline Teotónio Ricardo

  • Administrator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.teotonio.pt
[PHP] Inserir data na tabela para depois ordenar
« em: Agosto 20, 2007, 07:46:51 pm »
Boas, preciso de saber como inserir uma data numa tabela mysql, que tipo de campo é que deve ser e como ordenar posteriormente pela data.

Precisava disto para um sistema de comentários e para um sistema do género de noticias.

Offline TY@GV

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
[PHP] Inserir data na tabela para depois ordenar
« Responder #1 em: Agosto 20, 2007, 08:45:46 pm »
Olha não sei se percebi o teu problema..
Não sei se querias inserir a data automaticamente numa tabela mysql, se quiseres não estou a ver como se faz, porque isso já trabalha com php um bocado avançado e ainda não cheduei lá..lol..
Pelo que percebi se for para tu colocares as datas tu, no phpMyAdmin fazes isso facilmente, penso que tens de meter no tipo de dados "date" e para ordenar, na estrutura da tabela escolhes ascendente ou descendente..

Offline ilovehentai

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://
[PHP] Inserir data na tabela para depois ordenar
« Responder #2 em: Agosto 20, 2007, 11:59:51 pm »
Bem isto são muitas dúvidas a responder vou tentar decompor tudo.

1º a Base de dados
Criando o campo para armazenar a data existem vários formatos para datas, aquele que te aconselho de momento é o DateTime, assim poderás armazenar a data e a hora da inserção da mesma.

2º inserir a data

Partindo do princípio que existe uma tabela chamada "datas" e que nessa tabela existe um campo chamado "data"
então seguindo este exemplo:

Código: [Seleccione]

// Conectamos a base de dados



$hostname = "localhost";

$database = "nome_da_bd";

$username = "username";

$password = "*****";



$datas = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);



//Query para inserir a data



  $inserir_data = "INSERT INTO datas (`data`) VALUES ( NOW())";



  mysql_select_db($database, $datas);

  $Resultado = mysql_query($inserir_data, $datas) or die(mysql_error());

Basicamente nas primeiras linhas apenas conectamos a base de dados. Após executamos a Query SQL que insere a data actual no campo data da tabela datas. Repare que no MySQL existe a função NOW(), esta é responsável para inserir a data e hora actual da execução da Query no seguinte formato: 2007-08-20 23:15:23 (primeiro ano, mês, dia, hora, minutos e segundos)
Nota: Esta função do mySQL é semelhante a função seguinte do PHP; date( \\'Y-m-d H:i:s\\' ).

Esse formato será o responsável por ordenar as datas.

3º Ordenar as datas ou seja imprimir por ordem decrescente de maneira a ficar no topo as mais recentes.

Neste caso basta apenas outra query que permite ordenar os resultados por ordem decrescente, por exemplo:

Código: [Seleccione]

mysql_select_db($database, $datas);

$query_datas = "SELECT * FROM datas ORDER BY `data` DESC";

$datas = mysql_query($query_datas, $datas) or die(mysql_error());

$row_datas = mysql_fetch_assoc($datas);

$totalRows_datas = mysql_num_rows($datas);

Neste exemplo é executada a Query para seleccionar todos os campos da tabela datas e ordenar o campo data por Decrescente. Na linha seguinte caso a query não corre correctamente ocorre um erro, na terceira linha são inseridos todos os valores dos campos da tabela datas dentro de um array e por fim a última linha indica quantos resultados foram encontrados.

Nota: depois de os valores não serem mais necessários insere esta linha para libertar aa memória dos dados, poderá ficar para o fim do script.

Código: [Seleccione]

mysql_free_result($datas);

Por fim basta apenas imprimir os resultados usando um ciclo do - while poderás imprimir todos os resultados da query

Código: [Seleccione]

do{

 echo $row_datas[\\'data\\'];

}while($row_datas = mysql_fetch_assoc($datas));

E penso responder mais ou menos a tudo o que está em dúvida.
Cumps.

Offline Teotónio Ricardo

  • Administrator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.teotonio.pt
[PHP] Inserir data na tabela para depois ordenar
« Responder #3 em: Agosto 21, 2007, 12:23:05 am »
Obrigado, fiquei exclarecido.
A minha dúvida era o formato da data.
Mas assim aprendi o NOW() que desconhecia até a data.

Offline TY@GV

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
[PHP] Inserir data na tabela para depois ordenar
« Responder #4 em: Agosto 21, 2007, 12:43:43 am »
Uhm obrigado..Também esclarecido em questão aquela parte das datas automáticas..
Mas para organizar os dados também podia ser como eu disse não podia??

Offline TY@GV

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
[PHP] Inserir data na tabela para depois ordenar
« Responder #5 em: Agosto 21, 2007, 11:36:59 am »
Organizávamos os dados na tabela, e depois no php já não era preciso especificar a ordem porque assumia o que estava na base de dados..Ou estou enganado?
Desculpem o double post e que era para editar e enganei-me..

Offline Anatra

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
[PHP] Inserir data na tabela para depois ordenar
« Responder #6 em: Agosto 22, 2007, 11:47:08 am »
cenourinha...eu semp tive problemas com isso..se fosse a ti fazia um campo para cada membro da data...

//tks lycos :D

Hey, ja meteste a tag??

Offline Teotónio Ricardo

  • Administrator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.teotonio.pt
[PHP] Inserir data na tabela para depois ordenar
« Responder #7 em: Agosto 22, 2007, 11:06:00 pm »
Citar
cenourinha...eu semp tive problemas com isso..se fosse a ti fazia um campo para cada membro da data...

É mais um campo para cada artigo.

Offline Byter

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.techtuga.net
[PHP] Inserir data na tabela para depois ordenar
« Responder #8 em: Agosto 23, 2007, 10:11:42 am »
Obrigado...
Precisei mesmo desse..
Mas eu as vezes tiro o script da net e estudo-o...
Deviam fazer o mesmo...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49