Obliczanie wieku

2010-10-27 12:14:18 Post #1 user76

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

$query
="SELECT * FROM osoby WHERE id='$id' "// id osoby
$wynik=mysql_query($query);

if(
mysql_num_rows($wynik) > 0) {
        while(
$r mysql_fetch_array($wynik)) {
    
$pobierz =  $r['data_ur'];  // z bazy
    
$data explode("-"$pobierz);

    
$rok $data[0];
    
$mies $data[1];
    
$dzien $data[2]; 

$rok_teraz date(Y);
$wiek $rok_teraz $rok;

if(
date(m)<=$mies || date(d)<=$dzien){}
else {--
$wiek;}

if (
$wiek 10 == "2" || $wiek 10 == "3" || $wiek 10 == "4"){  
$lat " lata";
}

else {  
  
$lat " lat";

}
echo 
$wiek$lat;}} else {echo "Brak osób"; }

2010-10-27 12:20:15 Post #2 nospor

 
1) Uprzejmie proszę o wkładanie kodów, które nie wyświetlają masy błędów NOTICE
Włącz sobie ich wyświetlanie a zobaczysz o czym mówie:
http://nospor.pl/php-faq.html#faq-2

2) Ten kod powinien być funkcją. Jako jej argument podaje się datę i już. Funkcja sama z siebie nie powinna lecieć do bazy po datę.

3) Funkcja powinna zwracać liczbę. Tekst lat/lata to już inna bajka

Gdy zrobisz poprawki to sprawdzę czy działa

2010-10-27 21:20:53 Post #3 gość_Fifi209

 
Skrypt jest błędnie napisany, nie bierze pod uwagę m.in. lat przestępnych.
Polecam zainteresowanie się http://pl.php.net/datetime

2010-11-07 19:53:07 Post #4 user76

 
Przypominam sobie, że popełniłem ten błąd specjalnie.

2010-12-05 21:59:38 Post #5 gość_Comandeer

 
Skoro i tak pobieramy dane usera z bazy, to nie lepiej machnąć to DATEDIFF-em? Oczywiście jeśli data będzie zapisana jako odpowiedni typ (czytaj: DATETIME zamiast VARCHAR)

Odpowiedz