Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2011-06-14, 17:34
  #1
Medlem
När man registerar sig fyller man i sitt personnummer, det skickas till databasen och sen ligger det där. När jag ska använda "echo ".$row['dob']." skrivs hela personnummert ut. Jag vill endast visa:

Ålder: ??? år

Hur skapar jag en sådan kodsnutt?

Här är det jag lyckats få fram:

Kod:
<?php

include ("header.php");
include (
"connect.php");

if (isset(
$_GET['id'])) { 
$id $_SESSION['id']; 

$result mysql_query("SELECT * FROM users WHERE id=" $_GET['id']); 

while(
$row mysql_fetch_array($result)) 

                         
  { 
  
  echo 
"<table cellpadding='7' width='50%'><tr> 
  
  <td width=50%> 
  <font size='4' face='arial'> 
   "
.$row['username']."s profil
   </font> 
  </td></tr> </table>
 "
;  
  echo 
"<table cellpadding='7'>
  
  
  <tr><td><b><img src='' height='100' width='100'
  <td><b>Förnamn</b>: "
.$row['firstname']."<br>
        <b>Kön</b>: "
.$row['gender']."<br>
        <b>Ålder</b>: "
.$row['dob']."<br> // Detta som ska fixas.
  </td>
  </td>
  </tr>
  <hr>
 </table>
 <hr>
 test
  "
;
   
  } 


echo 
""

}  


include (
"footer.php");

?>
Citera
2011-06-14, 17:44
  #2
Medlem
Arkofs avatar
Plocka ut de 6/8 första ifrån $row['dob'] beroende på om födsel år sparas med 2 eller 4 tecken, sen kan du väl bara ta dagens datum minus värdet ifrån $row['dob'] sen får du avruna ner om du vill ha exakt år.
Borde nog fungera, är lite trött i huvet atm (:
Citera
2011-06-14, 17:46
  #3
Medlem
kh31d4rs avatar
har inte mysql en aggregate function som heter age?
__________________
Senast redigerad av kh31d4r 2011-06-14 kl. 17:50. Anledning: typo
Citera
2011-06-14, 17:46
  #4
Medlem
Citat:
Ursprungligen postat av Arkof
Plocka ut de 6/8 första ifrån $row['dob'] beroende på om födsel år sparas med 2 eller 4 tecken, sen kan du väl bara ta dagens datum minus värdet ifrån $row['dob'] sen får du avruna ner om du vill ha exakt år.
Borde nog fungera, är lite trött i huvet atm (:

Förstår inte hur du menar. Det jag menar är att ålder inte ska visas som 1991-08-16 eller liknande, utan 18 år.
Citera
2011-06-14, 17:48
  #5
Medlem
Arkofs avatar
Citat:
Ursprungligen postat av kh31d4r
har inte mysql en aggreagate function som heter age?
Googla lite snabbt
fick fram: http://dev.mysql.com/doc/refman/5.0/...culations.html
om de kan vara till någon hjälp
Citera
2011-06-14, 17:59
  #6
Medlem
Citat:
Ursprungligen postat av Arkof
Googla lite snabbt
fick fram: http://dev.mysql.com/doc/refman/5.0/...culations.html
om de kan vara till någon hjälp

Såg också det där då jag googlade, dock vet jag fortfarande inte hur jag ska fixa detta..
Citera
2011-06-14, 18:09
  #7
Medlem
Kod:
$age date_diff(date_create($row['dob']), date_create('now'))->y
Om row['dob'] strängen ser ut typ som 1972-10-22
__________________
Senast redigerad av looserulf 2011-06-14 kl. 18:12. Anledning: php tags
Citera
2011-06-14, 18:13
  #8
Medlem
Citat:
Ursprungligen postat av looserulf
Kod:
$age date_diff(date_create($row['dob']), date_create('now'))->y
Om row['dob'] strängen ser ut typ som 1972-10-22

Yes, så ser den ut.

Fatal error: Call to undefined function date_diff() in /home/a9315476/public_html/inc/profile.php on line 9
Citera
2011-06-14, 18:15
  #9
Medlem
var har du för version på php?
date_diff finns sedan PHP 5.3.0
Citera
2011-06-14, 18:28
  #10
Medlem
Citat:
Ursprungligen postat av looserulf
var har du för version på php?
date_diff finns sedan PHP 5.3.0

5.2.
Citera
2011-06-15, 15:34
  #11
Medlem
Finns det inget sätta att lösa detta på?
Citera
2011-06-15, 16:25
  #12
Medlem
Ruffzs avatar
Första träffen på google gav:

Kod:
<?php
// Calculate the age from a given birth date
// Example: GetAge("1986-06-18");
function GetAge($Birthdate)
{
        
// Explode the date into meaningful variables
        
list($BirthYear,$BirthMonth,$BirthDay) = explode("-"$Birthdate);
        
// Find the differences
        
$YearDiff date("Y") - $BirthYear;
        
$MonthDiff date("m") - $BirthMonth;
        
$DayDiff date("d") - $BirthDay;
        
// If the birthday has not occured this year
        
if ($DayDiff || $MonthDiff 0)
          
$YearDiff--;
        return 
$YearDiff;
}
?>

http://www.geekpedia.com/code79_Calc...irth-date.html

Lycka till
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback