Avatar billede thb Nybegynder
30. maj 2004 - 12:13 Der er 10 kommentarer og
1 løsning

Udregne antal dage som medlem

Hej alle

Hvordan udregner jeg hvormange dage en person har været medlem ?
Jeg har oprettelses datoen i min database ?

Thomas
Avatar billede sukos Juniormester
30. maj 2004 - 12:37 #1
Kommer jo an på hvordan dato er gemt.
Avatar billede dennismp Nybegynder
30. maj 2004 - 13:00 #2
SELECT to_days(unix_timestamp(now())  - unix_timestamp(  dit_dato_felt  ) ) as age FROM tabel;

Nu har du tiden i sekunder. Lad os sige du har den i $age

define('DAY', 60*60*24);
$t = floor($age / DAY);
if( $t > 0 ) {
  print "xyz har været medlem i " . $t . " dage");
}
else {
  print "xyz har været medlem i mindre end 1 dag");
}
Avatar billede thb Nybegynder
30. maj 2004 - 14:09 #3
nu har jeg skrevet sådan her...

<?
  $sql = mysql_query("SELECT to_days(unix_timestamp(now())  - unix_timestamp(crt_date) as crt_date FROM usr_sec_def") or die(mysql_error());;

  if($row = mysql_fetch_assoc($sql)){
    define('DAY', 60*60*24);
    $t = floor($row['crt_date'] / DAY);
    if($t > 0) {
      print("Du har været medlem i " . $t . " dage");
    }else {
      print("Du har været medlem i mindre end 1 dag");
    }
  }
?>

Men den udskrever bare sådan en mysql_error:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'as crt_date FROM usr_sec_def' at line 1

Hvad gør jeg forkert ?

Thomas
Avatar billede thb Nybegynder
30. maj 2004 - 14:11 #4
okay fandt selv fejlen... Der manglede selvfølgelig en ) til at indkredse to_days()
Avatar billede thb Nybegynder
30. maj 2004 - 14:13 #5
Problemet er så bare nu at den ikke udskriver det rigtige.. :D

crt_date står til 2004-05-27 i dben... og den skriver at jeg har været medlem mindre end 1 dag...

Thomas
Avatar billede dennismp Nybegynder
30. maj 2004 - 14:13 #6
hovsa, det var ikke meningen at to_days skulle have været med :-)

det kan være du også kan bare gøre:
SELECT to_days(curdate() - crt_date) FROM usr_sec_def

(jeg er ikke så stærk når det gælder datoer i mysql)
Avatar billede thb Nybegynder
30. maj 2004 - 14:23 #7
Det giver samme resultet... Den skriver stadigvæk mindre end 1 dag..
Avatar billede thb Nybegynder
30. maj 2004 - 14:31 #8
Det behøver ikke at være i mysql...
Avatar billede dennismp Nybegynder
30. maj 2004 - 14:41 #9
prøv med:

$res = mysql_query("SELECT to_days(curdate()) - to_days(crt_date) FROM usr_sec_def") or die(mysql_error());

if( $row = mysql_fetch_array($res) )
  print "Du har været medlem i {$row[0]} dage";
Avatar billede thb Nybegynder
30. maj 2004 - 14:48 #10
Den ser ud til at virke... :) Du udskriver 3 dage...
Avatar billede dennismp Nybegynder
30. maj 2004 - 14:58 #11
Yay! :)
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