Introduza o termo a pesquisar e clique Enter.

PHP

Set 07 24

Escrito por Luis Nabais @ 24/09/07 20:09 | 9 Comentários »

Posso oficialmente dizer que comecei o meu primeiríssimo projecto em PHP.

O TekPT recebeu essas honras já que o sistema que estou a usar actualmente não me satisfaz e eu achei que era uma boa forma de começar a aprender as lides do php e mysql. So far so good, estou a gostar bastante de me atirar para isto mesmo que continue a não ter muito jeito para a coisa… Claro que isto vai lá com a prática.

Basicamente estou a fazer um script simples que vai buscar os feeds, verifica se já existem na base de dados e em caso negativo adiciona os novos. Depois terei de fazer o output para os diversos formatos (HTML/RSS/Atom).

Agora algo que me anda aqui a dar a volta ao miolo e que não encontrei ainda solução: organizo os varios posts por data antes ou depois de os colocar na base de dados? É que eu não conheço assim muito bem SQL portanto não sei bem como lidar com esta questão, só sei que se eles ficassem todos ordenados por data na DB dava mais jeito (notem que eu vou ter IDs únicos para cada post).

Eu sei que este problema é bastante básico mas também convenhamos: eu comecei nestas lides há 2 dias.

pub:

9 Comentários

  1. Alcides Fonseca

    Devias guardar a data na base de dados, em MySQL existe um formato próprio, mas em PHP eu curto usar um int(11) com o Unix time 😛

    São gostos…

    Goodluck com PHP, mas aconselhava-te a aprender python ou rails 😛

  2. Dextro

    As minhas datas já estão em unix time (mas obrigado pela dica para o tamanho da DB 😉 ), a minha duvida é se ordeno as entradas antes de as enviar para a base de dados ou se as ordeno depois durante a leitura.

    Goodluck com PHP, mas aconselhava-te a aprender python ou rails

    Para que ir aprender algo novo quando o que sei de C é tão semelhante com o php com quem convivo há tanto tempo, que é tão bem suportado em virtualmente todo o lado e que pura e simplesmente faz o que eu preciso.

    Python soa-me a um pesadelo á espera de acontecer pelo pouco que li dos tutorials e farto-me de ouvir falar de rails apesar de não perceber o que faz a mais do que o php. “If it ain’t broke don’t fix it”

  3. Cláudio Franco

    Ordena sempre pela data e utiliza o URL de cada post como o “identificador” único (pelo menos junto da fonte).

    Assim, sempre que alguém na fonte actualizar um Post e altere por exemplo a data tens sempre o URL do post como referência “única”.

  4. falso

    Tipo…
    Tabela
    |id|title|content|url|date

    id autoinc, e o date timestamp

    depois quando fazes a query… “order by timestamp” problem solved.

  5. Dextro

    Ordena sempre pela data e utiliza o URL de cada post como o “identificador” único (pelo menos junto da fonte).

    Sim, já vou usar os links como identificadores únicos de cada entrada.

    depois quando fazes a query… “order by timestamp” problem solved.

    Se eu quiser ir buscar as ultimas x entradas ordenadas pelo timestamp o MySQL ordena antes de me dar os resultados?

  6. Cláudio Franco

    Sim ordena-te, seja timestamp, date, date-time, etc

    Sinceramente, aconslho datetime… isto porque até à pouco tempo (talvez tenha mudado nao sei) o timestamp do MySQL era diferente do PHP.

    Ou seja, ao fazeres date(“Y-m-d”,$timestamp_do_mysql); ia devolver a data por defeito do PHP 1997 ou assim.

    Terias que OU traduzir o timestamp do MySQL para unixtimestamp tipo

    SELECT UNIXTIMESTAMP(data) From tabela

    ou utilizas como DATETIME e depois utilizas o strtotime para traduzir o datetime para o timestamp UNIX do PHP.

    Mas admito, o tal comportamento do Mysql timestamp pode já ter mudado.

  7. Dextro

    Eu tenho mesmo um espaço na tabela para as datas em unixtime logo basta-me ordenar por esses 11 inteiros o que é relativamente simples 🙂

    A minha única duvida era mesmo se num caso muito excepcional não podia acontecer o post das 23:30 aparecer quando o das 23:31 que era mais recente não aparecia porque tinha sido introduzido mais cedo na base de dados. Isto prendia-se com o facto de eu conhecer mal o MySQL mas como é óbvio fui eu a introduzir problemas onde eles não existem 😆