Avatar billede internet Nybegynder
20. januar 2005 - 10:36 Der er 6 kommentarer

Dato og mysql database

Hej Eksperter

Jeg har en database tabel der ser sådan her ud...


CREATE TABLE `fakta` (
  `id` varchar(200) NOT NULL default '',
  `fornavn` varchar(200) NOT NULL default '',
  `efternavn` varchar(200) NOT NULL default '',
  `Fodselsdag` varchar(200) NOT NULL default '',
  `Fodsel_sted` text NOT NULL,
  `Land` varchar(200) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

Jeg vil meget gerne have hjælp til at udtrække fornavn og efternavn på de personer der har fødselsdag i dag... I feltet Fodselsdag har jeg skrevet datoerne sådan her, fx 20. januar 2005.

Scriptet skal sammenligne den aktuelle dato med felter Fodselsdag.... hvis der er nogle som passer, så skal den udskrive fornavn og efternavn..
Avatar billede internet Nybegynder
20. januar 2005 - 10:40 #1
Jeg skal bruge scriptet som et fødselsdagsscript.. som skriver til de personer der har fødselsdag.. "Tilykke til "fornavn" "efternavn", som i dag bliver "år"... det med år skal scriptet selv regne ud... Hvis jeg skal ændre i databsen for at det kan lade sig gøre at lave scriptet, så må I sige det..
Avatar billede detox Nybegynder
20. januar 2005 - 11:10 #2
Det ville være smart hvis du brugte et af MySQL's egne indbyggede felttyper, DATETIME eller DATE, til at opbevare 'Fodselsdag' og så gemme dagen som: '2005-01-20'.
Avatar billede hmortensen Nybegynder
20. januar 2005 - 15:45 #3
Jeg vil anbefale DATE, da du kun er interreseret i datoen.

Jeg har lavet dato feltet om, og rettet id, til at være auto_increment:

CREATE TABLE fakta (
  id int(11) NOT NULL auto_increment,
  fornavn varchar(200) NOT NULL default '',
  efternavn varchar(200) NOT NULL default '',
  Fodselsdag date NOT NULL default '0000-00-00',
  Fodsel_sted text NOT NULL,
  Land varchar(200) NOT NULL default '',
  PRIMARY KEY  (id)
) TYPE=MyISAM;


Og en stump til at hive det ud med:

<?php

include("connect.php");

$sql = mysql_query("SELECT fornavn, efternavn, (".date("Y")." - SUBSTRING(Fodselsdag, 1, 4)) AS alder FROM fakta WHERE SUBSTRING(Fodselsdag, 6) = '".date("m-d")."'");

while ($row = mysql_fetch_array($sql))
{
    echo $row['fornavn']." - ".$row['efternavn']." - ".$row['alder'];
}

?>
Avatar billede internet Nybegynder
21. januar 2005 - 09:17 #4
der er et eller andet galt i din ode.. jeg kan ikke få den til at virke...

jjeg tror at det er i mysql query'en
Avatar billede internet Nybegynder
21. januar 2005 - 11:37 #5
Jeg hhar selv fundet ud af det..
Avatar billede hmortensen Nybegynder
21. januar 2005 - 17:03 #6
Jeg havde testet og det virker fint her.

Var det sådan du gerne ville ha det ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester