|
| Finde annoncer der er max 30 dage gamle ??~ Fra : Jesper Andersen |
Dato : 20-11-02 12:56 |
|
Hejsa... Jeg er ved at øve mig med at annonce marked, og jeg vil gerne
have mit script til at kun hente de annoncer der er max 30 dage gamle.
Jeg troede jeg kunne gøre det med dette script.
$dage = 30;
$tid_before = time() - ((60 * 60 * 24) * ($dage + 1));
$dato = date("Y-m-d", $tid_before);
$query = "SELECT * FROM annoncer WHERE date > $dato";
Jeg er i tvivl om hvordan mit felt i databasen skal sættes op.
Nu hedder feltet "date" og der er sat til DATE (0000-00-00)
Burde det ikke virke ??
Nogen der kan hjælpe mig ?
Mvh
Jesper Andersen
| |
Thomas Holm (20-11-2002)
| Kommentar Fra : Thomas Holm |
Dato : 20-11-02 13:26 |
|
Du kan slippe afsted med at gøre noget i stil med det du spørger om - men
hvorfor ikke bare spørge i SQL?
Du du skal spørge om er så noget i stil med
$query = "SELECT * FROM annoncer WHERE NOW() <= DATE_ADD(date, INTERVAL 30
DAY)";
Man kan undre sig over det ikke hedder days - men det gør det ikke
Håber det hjalp
Med venlig hilsen
Thomas Holm
"Jesper Andersen" <REMOVEja@palby.dk> skrev i en meddelelse
news:pttmtu82lfq2n1nofn4ma4akjghosij0ea@4ax.com...
> Hejsa... Jeg er ved at øve mig med at annonce marked, og jeg vil gerne
> have mit script til at kun hente de annoncer der er max 30 dage gamle.
>
> Jeg troede jeg kunne gøre det med dette script.
>
> $dage = 30;
> $tid_before = time() - ((60 * 60 * 24) * ($dage + 1));
>
> $dato = date("Y-m-d", $tid_before);
>
> $query = "SELECT * FROM annoncer WHERE date > $dato";
>
> Jeg er i tvivl om hvordan mit felt i databasen skal sættes op.
>
> Nu hedder feltet "date" og der er sat til DATE (0000-00-00)
>
>
> Burde det ikke virke ??
> Nogen der kan hjælpe mig ?
>
> Mvh
> Jesper Andersen
| |
Jesper Andersen (20-11-2002)
| Kommentar Fra : Jesper Andersen |
Dato : 20-11-02 15:49 |
|
Mange tak for tippet Thomas, det virker som det skal nu....
On Wed, 20 Nov 2002 13:26:02 +0100, "Thomas Holm"
<thomas@cyberverden.dk> wrote:
>Du kan slippe afsted med at gøre noget i stil med det du spørger om - men
>hvorfor ikke bare spørge i SQL?
>
>Du du skal spørge om er så noget i stil med
>
>$query = "SELECT * FROM annoncer WHERE NOW() <= DATE_ADD(date, INTERVAL 30
>DAY)";
>
>Man kan undre sig over det ikke hedder days - men det gør det ikke
>
>Håber det hjalp
>
>Med venlig hilsen
> Thomas Holm
>
>"Jesper Andersen" <REMOVEja@palby.dk> skrev i en meddelelse
>news:pttmtu82lfq2n1nofn4ma4akjghosij0ea@4ax.com...
>> Hejsa... Jeg er ved at øve mig med at annonce marked, og jeg vil gerne
>> have mit script til at kun hente de annoncer der er max 30 dage gamle.
>>
>> Jeg troede jeg kunne gøre det med dette script.
>>
>> $dage = 30;
>> $tid_before = time() - ((60 * 60 * 24) * ($dage + 1));
>>
>> $dato = date("Y-m-d", $tid_before);
>>
>> $query = "SELECT * FROM annoncer WHERE date > $dato";
>>
>> Jeg er i tvivl om hvordan mit felt i databasen skal sættes op.
>>
>> Nu hedder feltet "date" og der er sat til DATE (0000-00-00)
>>
>>
>> Burde det ikke virke ??
>> Nogen der kan hjælpe mig ?
>>
>> Mvh
>> Jesper Andersen
>
| |
Tinky Winky (20-11-2002)
| Kommentar Fra : Tinky Winky |
Dato : 20-11-02 14:00 |
|
> $dage = 30;
> $tid_before = time() - ((60 * 60 * 24) * ($dage + 1));
>
> $dato = date("Y-m-d", $tid_before);
>
> $query = "SELECT * FROM annoncer WHERE date > $dato";
>
> Jeg er i tvivl om hvordan mit felt i databasen skal sættes op.
>
> Nu hedder feltet "date" og der er sat til DATE (0000-00-00)
Jeg kan bedst lide at have timestamps i databasen i INT felter. Så siger du
bare i dette tilfælde .... WHERE date > $tid_before
| |
Anders Johannsen (20-11-2002)
| Kommentar Fra : Anders Johannsen |
Dato : 20-11-02 14:20 |
|
> Jeg kan bedst lide at have timestamps i databasen i INT felter.
Hvorfor?
/A
| |
Tinky Winky (20-11-2002)
| Kommentar Fra : Tinky Winky |
Dato : 20-11-02 14:31 |
|
> > Jeg kan bedst lide at have timestamps i databasen i INT felter.
>
> Hvorfor?
Portabel SQL. Uafhængighed af database. Kan bedst lide at arbejde med tiden
i PHP.
| |
Anders Johannsen (20-11-2002)
| Kommentar Fra : Anders Johannsen |
Dato : 20-11-02 16:17 |
|
"Tinky Winky" <lksjdflkjzsdhflkajshrlkjaeshr@ksjdhskjdhfkshdfkshdf.com>
wrote in message news:arg2q5$o5f$1@sunsite.dk...
> > > Jeg kan bedst lide at have timestamps i databasen i INT felter.
> >
> > Hvorfor?
>
> Portabel SQL. Uafhængighed af database. Kan bedst lide at arbejde med
tiden
> i PHP.
SQL specificerer da en række tidstyper og acceptable inputformat for disse,
så din SQL bliver hverken mere eller mindre portabel, hvis du bruger de
"rigtige" tidstyper. I øvrigt kan du vel bare lade dit API håndtere en
eventuel konvertering.
Herudover får du en masse andre fordele, f.eks. håndtering af tidszoner,
mulighed for mere eller mindre præcise tidsangivelser (f.eks. med dag eller
millisekunds præcision). Hvis du tilgår dataene fra andre
progammeringssprog, f.eks. Java, vil du kunne drage fordel af den indbyggede
understøttelse for SQL-typerne. Det bliver nemmere at lave aggregering på
tid i databasen (f.eks. antal poster i en given time) - og endelig: Hvis du
engang imellem laver en "manuel" forespørgsel, er resultatet umiddelbart
læsbart.
/A
| |
|
|