/ 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
Førstkommende dato
Fra : KASPER


Dato : 25-03-01 14:54

Jeg har en database (mySQL) med en adresseliste (navn, adresse, tlf,
fødselsdato m.v.). Kan man lave et udtræk, der sorterer således den
førstkommende fødselar altid står øverst? Altså sortere efter
fødselsdato i forhold til dags dato?

--
KASPER



 
 
Andreas Hjordt (25-03-2001)
Kommentar
Fra : Andreas Hjordt


Dato : 25-03-01 17:06

select * from mySQL order by fødselsdato

Håber at det er hvad du søger.

MvH
Andreas Hjordt


"KASPER" <kd42@hotmail.com> wrote in message
news:ZLmv6.166$Tj4.11914@news101.telia.com...
> Jeg har en database (mySQL) med en adresseliste (navn, adresse, tlf,
> fødselsdato m.v.). Kan man lave et udtræk, der sorterer således den
> førstkommende fødselar altid står øverst? Altså sortere efter
> fødselsdato i forhold til dags dato?
>
> --
> KASPER
>
>



Rasmus Ebler Simonse~ (25-03-2001)
Kommentar
Fra : Rasmus Ebler Simonse~


Dato : 25-03-01 17:41


> select * from mySQL order by fødselsdato
Forudsat at du ikke har årstal med i DBen

/rasmus



Ghashûl (25-03-2001)
Kommentar
Fra : Ghashûl


Dato : 25-03-01 18:13

On Sun, 25 Mar 2001 18:06:26 +0200, "Andreas Hjordt" <ahj@trition.dk>
wrote:

>select * from mySQL order by fødselsdato
>
>Håber at det er hvad du søger.

Den vil vel bare sortere efter hvornår man har fødselsdag, i forhold
til 1 januar?

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7two23six29
E-mail: stefan at bruhn dot to
URL: http://ghashul.dk

KASPER (25-03-2001)
Kommentar
Fra : KASPER


Dato : 25-03-01 21:08

"Andreas Hjordt" <ahj@trition.dk> wrote in message
news:99l4ub$o02$1@news.inet.tele.dk...
> select * from mySQL order by fødselsdato
>
> Håber at det er hvad du søger.

Nej, det går desværre ikke. Dels er der årstal med (skal beregne
personens alder andet sted), og dels skal der sorteres i forhold til den
aktuelle dato.

Fx. hvis vi har den 25. marts og Jens Jensen er født den 1. april 1971,
så skal han stå øverst, forudsat der ikke er andre fødselsdage i dette
tidsrum. Når vi passerer den 1. april bliver Jens Jensen rykket ned i
bunden.

Jeg er kommet så langt, at det nok bliver nødvendigt at splitte
fødselsdatoen op over flere kolonner i tabellen og behandle dato, måned
og årstal hver for sig. Det jeg var ude efter, var om der fandtes en
dato/tids funktion i php jeg havde overset som kunne hjælpe.

--
KASPER



Glen Kjærulff (25-03-2001)
Kommentar
Fra : Glen Kjærulff


Dato : 25-03-01 23:20

>
> Jeg er kommet så langt, at det nok bliver nødvendigt at splitte
> fødselsdatoen op over flere kolonner i tabellen og behandle dato, måned
> og årstal hver for sig. Det jeg var ude efter, var om der fandtes en
> dato/tids funktion i php jeg havde overset som kunne hjælpe.
>

Det er der mktime().
http://dk.php.net/manual/function.mktime.php

den vil konvetere inputtet altså fødselsdato til sekunder siden en bestemt
dato, kan ikke huske hvilken. altså for du et tal ala 97025545 ->
unixtimestamp

det kan man så konvetere til et pænt resultat. med

date()

http://dk.php.net/manual/function.date.php

så kan du bare lave en select * from tabel order by fødselsdag.

osv.
echo date("Y - M - D",$fødelsedag);

Glen K




Mads Lie Jensen (26-03-2001)
Kommentar
Fra : Mads Lie Jensen


Dato : 26-03-01 10:44

On Sun, 25 Mar 2001 22:08:08 +0200, "KASPER" <kd42@hotmail.com> wrote:

>Fx. hvis vi har den 25. marts og Jens Jensen er født den 1. april 1971,
>så skal han stå øverst, forudsat der ikke er andre fødselsdage i dette
>tidsrum. Når vi passerer den 1. april bliver Jens Jensen rykket ned i
>bunden.
>
>Jeg er kommet så langt, at det nok bliver nødvendigt at splitte
>fødselsdatoen op over flere kolonner i tabellen og behandle dato, måned
>og årstal hver for sig. Det jeg var ude efter, var om der fandtes en
>dato/tids funktion i php jeg havde overset som kunne hjælpe.

Jeg har en ide om at man kan omregne datoen til dagen i året (1-366).
Hvis dag-nummeret er mindre end i dags nummer, så ligger man 366 til.

I mysql ville det være noget ala
SELECT IF(DAYOFYEAR(fødselsdag) < DAYOFYEAR(NOW()),
DAYOFYEAR(fødselsdag) + 366, DAYOFYEAR(fødselsdag)) AS sortering,
fødselsdag FROM tabel ORDER BY sortering DESC


--
Mads Lie Jensen
Mads@gartneriet.dk
ICQ #25478403
http://www.gartneriet.dk

KASPER (26-03-2001)
Kommentar
Fra : KASPER


Dato : 26-03-01 22:39

"Mads Lie Jensen" <mads@gartneriet.dk> wrote in message
news:gc3ubt0891ciplaioe0anvbji554dgslcp@4ax.com...
> Jeg har en ide om at man kan omregne datoen til dagen i året (1-366).
> Hvis dag-nummeret er mindre end i dags nummer, så ligger man 366 til.
>

Tak, det virkede faktisk :)

> I mysql ville det være noget ala
> SELECT IF(DAYOFYEAR(fødselsdag) < DAYOFYEAR(NOW()),
> DAYOFYEAR(fødselsdag) + 366, DAYOFYEAR(fødselsdag)) AS sortering,
> fødselsdag FROM tabel ORDER BY sortering DESC

Helt præcist, ser det sådan ud:
SELECT IF ((DAYOFYEAR(foedt) < DAYOFYEAR(CURRENT_DATE)),
DAYOFYEAR(foedt)+366, DAYOFYEAR(foedt)) AS sorting, navn, adresse,
postnr, bynavn, email, www, foedt FROM foed ORDER BY sorting ASC

--
KASPER



Andreas Kleist Svend~ (27-03-2001)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 27-03-01 14:38

On Mon, 26 Mar 2001 23:39:22 +0200, "KASPER" <kd42@hotmail.com> wrote:

>Helt præcist, ser det sådan ud:
>SELECT IF ((DAYOFYEAR(foedt) < DAYOFYEAR(CURRENT_DATE)),
>DAYOFYEAR(foedt)+366, DAYOFYEAR(foedt)) AS sorting, navn, adresse,
>postnr, bynavn, email, www, foedt FROM foed ORDER BY sorting ASC

Der er ikke taget højde for år uden skuddag, de år har kun 365 dage


mvh Andreas

Mads Lie Jensen (27-03-2001)
Kommentar
Fra : Mads Lie Jensen


Dato : 27-03-01 15:14

On Tue, 27 Mar 2001 13:38:29 GMT, usenetnospam@nau.dk (Andreas Kleist
Svendsen) wrote:

>On Mon, 26 Mar 2001 23:39:22 +0200, "KASPER" <kd42@hotmail.com> wrote:
>
>>Helt præcist, ser det sådan ud:
>>SELECT IF ((DAYOFYEAR(foedt) < DAYOFYEAR(CURRENT_DATE)),
>>DAYOFYEAR(foedt)+366, DAYOFYEAR(foedt)) AS sorting, navn, adresse,
>>postnr, bynavn, email, www, foedt FROM foed ORDER BY sorting ASC
>
>Der er ikke taget højde for år uden skuddag, de år har kun 365 dage

Det er jo ligegyldigt.
Om man ligger 365 eller 366 til giver det samme i sorteringen, og det
var det der var meningen.

--
Mads Lie Jensen
Mads@gartneriet.dk
ICQ #25478403
http://www.gartneriet.dk

Andreas Kleist Svend~ (27-03-2001)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 27-03-01 16:27

On Tue, 27 Mar 2001 16:14:05 +0200, Mads Lie Jensen
<mads@gartneriet.dk> wrote:

>Det er jo ligegyldigt.

Du har såmænd ret.

>Om man ligger 365 eller 366 til giver det samme i sorteringen, og det
>var det der var meningen.

Jeg var lige lidt for hurtig, tricket virker præcis som det skal.


mvh Andreas

Christian Schmidt (28-03-2001)
Kommentar
Fra : Christian Schmidt


Dato : 28-03-01 23:49

Mads Lie Jensen wrote:
>
> >>SELECT IF ((DAYOFYEAR(foedt) < DAYOFYEAR(CURRENT_DATE)),
> >>DAYOFYEAR(foedt)+366, DAYOFYEAR(foedt)) AS sorting, navn, adresse,
> >>postnr, bynavn, email, www, foedt FROM foed ORDER BY sorting ASC
> >
> >Der er ikke taget højde for år uden skuddag, de år har kun 365 dage
>
> Det er jo ligegyldigt.
> Om man ligger 365 eller 366 til giver det samme i sorteringen, og det
> var det der var meningen.

Til gengæld er DAYOFYEAR('2000-03-01') == DAYOFYEAR('2001-03-02').

Dvs. at man kan risikere, at datoer efter 28. februar ikke er sorteret
helt rigtigt (de kan være forskudt én dag).

Jeg er p.t. for træt til at komme med et bud på en alternativ en løsning



Christian

Søg
Reklame
Statistik
Spørgsmål : 177508
Tips : 31968
Nyheder : 719565
Indlæg : 6408575
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste