[PHP] Inserir data na tabela para depois ordenar

Started by Teotónio Ricardo, August 20, 2007, 07:46:51 PM

Previous topic - Next topic

Teotónio Ricardo

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.

TY@GV

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

ilovehentai

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:


// 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:


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.


mysql_free_result($datas);

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


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.

Teotónio Ricardo

Obrigado, fiquei exclarecido.
A minha dúvida era o formato da data.
Mas assim aprendi o NOW() que desconhecia até a data.

TY@GV

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

TY@GV

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

Anatra

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

Teotónio Ricardo

Quotecenourinha...eu semp tive problemas com isso..se fosse a ti fazia um campo para cada membro da data...

É mais um campo para cada artigo.

Byter

Obrigado...
Precisei mesmo desse..
Mas eu as vezes tiro o script da net e estudo-o...
Deviam fazer o mesmo...
Byter O meu Blog