Avatar billede buxxy Praktikant
26. februar 2010 - 14:52 Der er 10 kommentarer og
1 løsning

Brugere medlem i 1 år - vise data ?

Hej Eksperter!

Jeg har en tabel i databasen som hedder "users". Den indeholder bl.a. en række der hedder "user_joined" - det er den dag en bruger tilmeldte sig hjemmesiden.

I denne række er daten for hvornår de blev tilmeldt som flg. (eksempel): "1201220771"

Nu er mit spørgsmål så: Hvordan kan jeg hive dataen ud fra en bruger der blev tilmeldt for 1 år siden ?

Altså jeg mener, at jeg gerne vil have databasen til at vise, ligeså snart en bruger har været medlem 1 år på siden.

Fortsat god dag - samt en god weekend!

Mvh.
Buxxy.
Avatar billede showsource Seniormester
26. februar 2010 - 15:22 #1
$lastyear = strtotime("-1 Year");

$sql = "SELECT * FROM users WHERE user_joined < ".$lastyear;

$rows = mysql_query($sql) or die (mysql_error());
Avatar billede buxxy Praktikant
26. februar 2010 - 16:02 #2
Hmm, der skal ikke andet kode til, eller ?

Den kode viser blot en blank hvid side - på trods af at flere brugere har 1-års-dag i dag ?
Avatar billede showsource Seniormester
26. februar 2010 - 16:25 #3
:O)))

Hvis du blot får en hvid side, så er query iorden! :O)

Du skal selvf. også bruge f.eks. mysql_fetch_object() og lign. for at få vist noget på skærmen.

if(mysql_num_rows($rows) > 0) {
    while($v = mysql_fetch_object($rows)) {
    echo"<p>\r\n";
    echo $v->brugernavn ." har været medlem siden ".date("d/m Y H:i:s", $->user_joined);
    echo"</p>\r\n";
    }
}

Utestet...
Avatar billede showsource Seniormester
26. februar 2010 - 16:26 #4
$->user_joined skal jo så være
$v->user_joined
Avatar billede michael_stim Ekspert
26. februar 2010 - 16:36 #5
Check datoformat i din base. I udskrift ser denne således ud:
$lastyear  = date('Ymd',mktime(0, 0, 0, date("m"),  date("d"),  date("Y")-1));

20090226

Og så skal det nok være:
$sql = "SELECT * FROM users WHERE user_joined = '".$lastyear."';
Avatar billede michael_stim Ekspert
26. februar 2010 - 16:38 #6
Date formaten var jo beskrevet. Så er det som showsource viste ;o) Bare med = i stedet for < i queryen.
Avatar billede buxxy Praktikant
26. februar 2010 - 16:53 #7
@showsource + michael_stim: Det virker desværr lidt for uoverskueligt for mig - sry.

Bare smid et svar begge to - så kalder vi bare tråden som værende "løst".

Det er nok ikke lige det jeg skal rode med nu..

Kan nemlig stadig ikke fatte en meter (måske jeg skulle ringe til Peter? ) lol

Nå, I må ha' en god weekend begge to!

Tak for forsøg på at hjælpe mig på vej!
Avatar billede showsource Seniormester
26. februar 2010 - 16:53 #8
njahh, michael_stim, hvor mange brugere er mon oprettet på præcis det tidspunkt ?
Avatar billede showsource Seniormester
26. februar 2010 - 16:56 #9
Jamen jamen, hvordan får du brugere i db ?

Og vi er her jo for at hjælpe med problemer.
Avatar billede showsource Seniormester
26. februar 2010 - 17:03 #10
Datoformat i din db er unix sekunder siden 01-01-1970 klokken 00:00:00

Også kaldet unixtime.


Med php kan du bruge

echo time();

til at vise sekunder siden da.

Med strtotime() kan du omdanne en tekststreng til sekunder siden unixtime

echo strtotime("-1 Year");

// Næste år f.eks.
echo strtotime("Next Year");

Og bortset fra det, er det en masse tid funktioner i mysql.
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
Avatar billede michael_stim Ekspert
26. februar 2010 - 17:19 #11
#8 Forestillede mig det var noget á la "fødselsdag".

#7 Giv ikke op, det er ikke så svært. Må hoppe fra her og er ikke tilbage før efter weekenden. Men er sikker på at showsource kan guide dig igennem ;o)
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