/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste