?> Problemet er bare, at hvis jeg vil udskrive alder, viser den hvor gamle de ville være i dag. Det duer jo ikke, da nogle er døde. I min tabel har jeg har jeg felterne: born og died i dateformat. Skulle der mon være en eller anden, der kan vise mig hvordan jeg finder alderen, også på de der er døde.
Hvad vil du vise som alder paa en afdoed? Vil du vise alderen paa doedsdagen? Eftersom det er en stoerrelse der aldrig aendrer sig er det nemmeste maaske at lave et felt 'doedsalder' i tabellen og fylde det ud manuelt samtidig med at du udfylder doedsdato. Saa er du fri for at skulle beregne det hver gang du beregner alderen af de levende personer.
$q udvides saa med "SELECT ......, doesdag, ... FROM turen WHERE MONTH(born) = ..."
Scriptet i dit oprindelige spoergsmaal giver dig alle personer med foedselsdag idag, inklusiv de afdoede (med mindre du flytter afdoede personer til en anden tabel end turen.) I foerste del af scriptet i #2 soeger du efter alder paa personer med feltet died fyldt ud. Saa det maa vel vaere et spoergsmaal om at kombinere de to.
Enten kan du i scriptet #2 erstatte "..WHERE id = $id.." med "..WHERE MONTH(born) = '".date('n')."' AND DAYOFMONTH(born) = '".date('j')."
Eller du kan udvide scriptet i dit oprindelige spoergsmaal med
Her finder den alder, evt. "død", og evt. fødselsdag:
$sql = "SELECT IF(dead IS NOT NULL,(YEAR(dead)-YEAR(birth))-(RIGHT(dead, 5)<RIGHT(birth, 5)),(YEAR(CURDATE())-YEAR(birth))-(RIGHT(CURDATE(), 5)<RIGHT(birth, 5))) as alder, IF(dead IS NULL,DATE_FORMAT(birth,'%m-%d'),NULL) as birthday, DATE_FORMAT(CURDATE(),'%m-%d') as today FROM alder"; $rows = mysql_query($sql) or die (mysql_error());
(Du siger "SELECT ...... FROM alder". Saa du har en tabel alder med, mindst, felterne dead og birth. Det var jeg ikke klar over.)
Saa er det en loesning der virker tilfredsstillende? I saa fald, forventer du mere fra mig, eller kan spoergsmaalet lukkes nu hvor der er en loesning? Det er din afgoerelse om du vil lukke med points til mig eller om du selv vil oprette et svar og acceptere det.
Nu var det ikke mig som stillede spm., så det er ex. på min tabel. Men ellers:
$sql = "SELECT IF(died IS NOT NULL,(YEAR(died)-YEAR(born))-(RIGHT(died, 5)<RIGHT(born, 5)),(YEAR(CURDATE())-YEAR(born))-(RIGHT(CURDATE(), 5)<RIGHT(born, 5))) as alder, IF(died IS NULL,DATE_FORMAT(born,'%m-%d'),NULL) as birthday, DATE_FORMAT(CURDATE(),'%m-%d') as today FROM turen";
Tak til jer begge to. Nu fik jeg noget at arbejde med, så jeg kan lege mig lidt frem til en løsning. Vil i begge sende et svar, så jeg kan dele pointene mellem jer?
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.