07. februar 2009 - 17:59
Der er
22 kommentarer og 1 løsning
Udregn alder hjælp
jeg har last en masse tråde her inde om hvordan man udregner en persons alder men har læst dem og fatter hat den skal hente den fra mysql da alderen skal vises på en anden side ene den hvor man skriver sin alder 1 hvordan skal mysql se ud 2 hvordan skal den hente det fra mysql 3 hvordan ser php koden ud håber der en som vil hjælpe og skrive så jeg forstå det :) //Diablo925
Annonceindlæg fra Computerworld
07. februar 2009 - 18:01
#1
Jeg skal lige vide... Har du lavet funktion til at forbinde til server og gemme?
07. februar 2009 - 18:09
#2
ja den er lavet og har også fået gemt data så den kan vise ddmmyyyy men mangler den udregner den persons alder som er min det skal laves til en ansøgnings side 19031985 alder 23år
07. februar 2009 - 18:34
#3
Det nemmeste ville være at gemme datoen som unix timestamp med mktime() (mktime(0,0,0,m,d,y)). Så ville det blive noget nemmere at udregne forskellen...
07. februar 2009 - 18:42
#4
tager hvis i skriver som virker
07. februar 2009 - 18:55
#5
Jeg vil tro du kan bruge noget i stil med følgende: <?php $date = mktime(0,0,0,$month,$day,$year); $alder = floor((time()-$date)/(60*60*24*365.24)); echo $alder; ?> Note: der er gennemsnitligt 365,24 dage i et år.
07. februar 2009 - 20:31
#6
ok men skal den skrives der hvor man skriver sin ansøgning eller skal den bruges til at omregne det data som kommer mysql ?
08. februar 2009 - 03:29
#7
SELECT name,YEAR(NOW())-YEAR(birthday)-IF(DAYOFYEAR(NOW())<DAYOFYEAR(birthday),1,0) AS age FROM person; henter alderen fra MySQL (sæt selv en WHERE på hvis nødvendigt)
08. februar 2009 - 03:33
#8
Det duer ikke at dividere sekund differencen med 365.24 dage, fordi 365 dage kan være 1 år eller 0 år afhængig af om der er skudår eller ej imellem.
08. februar 2009 - 11:46
#9
#6 Skal bruges til at omregne data der kommer fra MySQL. #7 Udmærket løsning. #8 Blot en note: Løsningen med at bruge sekund differencen giver en maksimal afvigelse på 17,46 timer i forhold til det korrekte. #0 Så vidt jeg husker skal dato formatet enten være YYYY-MM-DD eller sekunder siden unix timestamp (evt. vha. mktime) for at MySQL kan opfatte datoen korrekt. Med arne_v's forslag bliver den endelige løsning således noget i retningen af: <?php $username = "_BRUGERNAVN_"; $result = mysql_query("SELECT user,birthday,YEAR(NOW())-YEAR(birthday)-IF(DAYOFYEAR(NOW())<DAYOFYEAR(birthday),1,0) AS age FROM users WHERE user = '$username'"); $r=mysql_fetch_array($result); echo "User: $username<br/>Alder: " . $r["age"] . "<br/>Fødselsdag: " . $r["birthday"] . "<br/>"; ?>
08. februar 2009 - 14:02
#10
<?php include("config.php"); $query = mysql_query("SELECT * FROM ansog ORDER BY id"); ?> <?php while($row = mysql_fetch_array($query)) { ?> <TABLE class="high" width=40% border=1><TR><TD width=25%>Navn: <? echo $row['Navn']; ?> <? echo $row['Efternavn']; ?></TD><TD width=25%>Født: <? echo $row['Alder']; ?>(HER SKAL ALDER STÅ)</TD><TR><TD width=25%>Nick: <B><FONT COLOR=Red><? echo $row['Brugernavn']; ?></FONT></B></TD><TD width=25%>Email: <B><FONT COLOR=Red><? echo $row['Mail']; ?></FONT></B></TD></TR><TR><TD width=25%>IP:<? echo $row['Ip']; ?></TD><TD width=25%>Dato af ansøgningen:<? echo $row['Dato']; ?></TD></TR><TR> <TD colspan=2><? echo $row['Tekst']; ?></td></TR> </TABLE> <?php } ?> har sådan en gang rodet kode hvordan skal jeg skrive det ??
08. februar 2009 - 14:38
#11
Følgende virker. Følgende går ud fra at brugerens fødselsdag står i variablen "birthday" i database tabellen. Hvis den hedder noget andet i databasen må du selv ændre det i MySQL queryen nedenfor. Jeg har samtidig rettet din kode til validerbar HTML. <?php include("config.php"); $query = mysql_query("SELECT *,birthday,YEAR(NOW())-YEAR(birthday)-IF(DAYOFYEAR(NOW())<DAYOFYEAR(birthday),1,0) AS Alder FROM ansog ORDER BY id"); while($row = mysql_fetch_array($query)) { $navn = $row["Navn"]; $alder = $row["Alder"]; $brugernavn = $row["Brugernavn"]; $mail = $row["Mail"]; $ip = $row["Ip"]; $dato = $row["Dato"]; $tekst = $row["Tekst"]; echo " <table class=\"high\" width=\"40%\" border=\"1\"> <tr> <td style=\"width:25%;\">Navn: $navn $efternavn</td> <td style=\"width:25%;\">Født: $alder</td> </tr> <tr> <td style=\"width:25%;\">Nick: <strong><span style=\"font-color:red;\">$brugernavn</span></strong></td> <td style=\"width:25%;\">Email: <strong><span style=\"font-color:red;\">$mail</span></strong></td> </tr> <tr> <td style=\"width:25%;\">IP: $ip</td> <td style=\"width:25%;\">Dato af ansøgningen: $dato</td> </tr> <tr> <td colspan=\"2\">$tekst</td> </tr> </table>"; } ?>
08. februar 2009 - 15:18
#12
Jo mere jeg tænker over det så tror jeg heller ikke at: SELECT name,YEAR(NOW())-YEAR(birthday)-IF(DAYOFYEAR(NOW())<DAYOFYEAR(birthday),1,0) AS age FROM person er god - dage må kunne få forskellige dagnumre alt efter skudaar. SELECT name,YEAR(NOW())-YEAR(birthday)-IF(MONTH(NOW())*31+DAYOFMONTH(NOW())<MONTH(virthday)*31+DAYOFMONTH(birthday),1,0) AS age FROM person må give samme dag nummer for samme dag og dermed virke (det er ligegyldigt at der er huller i rækkefølgen).
08. februar 2009 - 15:27
#13
tak psychopixi det virker vær sød at smide et svar så du kan få dine point
08. februar 2009 - 16:29
#14
Velbekomme:) Jeg kommer til at se at jeg har glemt "efternavn" i min kode, men det kan du jo selv lige tilføje:D
08. februar 2009 - 16:59
#15
har jeg gjort står med problem nr 2 nu men det er bare at side og prøve skal have lavet en comment del hvor man kan skrive og bedømme folk og skal have lavet så det man skriver følger med til den ansøgning så noget med de 2 id skal kodes sammen vel
08. februar 2009 - 17:03
#16
#15 Hvis jeg forsår dig ret er det vel blot at generere et input felt, der indeholder ansøgningen ID-nr fra databasen, så inputtet kan identificeres til den rigtige ansøgning. Det burde være relativt simpelt:)
08. februar 2009 - 17:20
#17
Hvis jeg har forstået dig rigtigt, vil denne kode gøre det du beder om: <?php $query = mysql_query("SELECT *,birthday,YEAR(NOW())-YEAR(birthday)-IF(DAYOFYEAR(NOW())<DAYOFYEAR(birthday),1,0) AS Alder FROM ansog ORDER BY id"); while($row = mysql_fetch_array($query)) { $id = $row["id"]; $navn = $row["Navn"]; $efternavn = $row["Efternavn"]; $alder = $row["Alder"]; $brugernavn = $row["Brugernavn"]; $mail = $row["Mail"]; $ip = $row["Ip"]; $dato = $row["Dato"]; $tekst = $row["Tekst"]; echo " <form action=\"changes.php\" method=\"post\"> <table class=\"high\" width=\"40%\" border=\"1\"> <tr> <td style=\"width:25%;\">Navn: $navn $efternavn</td> <td style=\"width:25%;\">Alder: $alder</td> </tr> <tr> <td style=\"width:25%;\">Nick: <strong><span style=\"font-color:red;\">$brugernavn</span></strong></td> <td style=\"width:25%;\">Email: <strong><span style=\"font-color:red;\">$mail</span></strong></td> </tr> <tr> <td style=\"width:25%;\">IP: $ip</td> <td style=\"width:25%;\">Dato af ansøgningen: $dato</td> </tr> <tr> <td colspan=\"2\">$tekst </td> </tr> <tr> <td colspan=\"2\"><textarea rows=\"4\" cols=\"65\" name=\"note\">Skriv note her...</textarea></td> </tr> <tr> <td colspan=\"2\" style=\"text-align:right;\"> <input type=\"hidden\" name=\"id\" value=\"$id\"/> <input type=\"submit\" name=\"submit\" value=\"Gem ændringer\"/> </td> </tr> </table> </form>"; } ?> Herefter kan du i changes.php hente variablerne, således: <?php $database_id = $_POST["id"]; $ansog_note = $_POST["note"]; if($_POST["submit"]){ // Der er trykket submit.... } ?>
08. februar 2009 - 18:35
#18
? inde i den der changes.php hvad skal jeg skrive
08. februar 2009 - 18:42
#19
Du skal vel ligge noten i databasen. Men jeg har måske misforstået hvad du vil?
08. februar 2009 - 18:47
#20
ja har jeg også og lavet en include("config.php"); mysql_query("INSERT INTO ansog (id, Note) values ('$_POST[id]', '$_POST[note]')");
09. februar 2009 - 17:03
#21
hmm hvis jeg fjerner id i den der insert vil den godt skrive til mysql men så bliver der lavet en ny ansøgning hvor det står hvis jeg skriver den med id sker der ikke noget nogle ide hvorfor den gør det ?
02. august 2009 - 22:16
#23
Hej. Har lige prøvet med denne kode: $result = mysql_query("SELECT brugernavn,alder,YEAR(NOW())-YEAR(alder)-IF(DAYOFYEAR(NOW())<DAYOFYEAR(alder),1,0) AS age FROM brugere WHERE id = '".$_SESSION['brugerid']."'"); $r=mysql_fetch_array($result); echo "User: " . $r["brugernavn"] . "<br/>Alder: " . $r["age"] . "<br/>Fødselsdag: " . $r["alder"] . "<br/>"; Men den giver dette: User: BenjaBoy Alder: Fødselsdag: 20-11-1992 En der kan hjælpe? :)
Vi tilbyder markedets bedste kurser inden for webudvikling