Gå til innhold

pålogget nå -liste


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

kult... har en som heter "sistinnlogget", men da må man frem med en hel del /3600 -regnestykker for å regne det ut? hvordan gjør man det i praksis..?

 

et spørmål til; du svarte på en annen tråd om å vise dato "slik jeg vil ha det", og henviste til mysql.com. sliter litt med å finne ut hvordan det gjøres. har lyst til å vise kun dato måned og år.

 

<?php echo mysql_result($result,0,"sistinnlogget"); ?> viser 2003.12.12 12:12

Skrevet

kort og gæli, gitt en tabell 'online' med brukernavn eller displaynavn og dato (sistinnlogget om jeg forsto deg rett)

 

1) oppdatere en "sist brukt"-sak:

 

"replace into online set user='$bruker',tid=Now()"

 

2) hente ut ønsket dato:

 

http://www.mysql.com/doc/en/Date_and_time_..._functions.html

(søk etter date_format)

 

$result = mysql_query("select date_format(sistinnlogget,'%e/%c %Y') as sistinnlogget from online");

Skrevet

Når det gjelder å hente ut de som er aktive i fra en mysql database så bør ikke det by på store problemer. 3600 regnestykker er ingen ting!

 

Har selv kjørt ganske heftige select's, joinet flere tabeller med godt over 200.000 poster i hver. Alle disse ble utført på under 0.1 sekunder. Så datamaskinen kan stå å regne som bare det ;)

Skrevet

Denne koden bør gi alle de som har logget seg inn de siste 5 minuttene litt publisitet ;) Det viser hvertfall hvordan det gjøres.

"SELECT brukernavn FROM tabell WHERE tidspunkt = (now()+300)"

;)

Skrevet

$result = mysql_query("SELECT brukernavn FROM brukere WHERE sistinnlogget = (now()+300)");



echo $result;

 

...blir til...

 

Resource id #3

 

...og da schønner jeg iiiingen ting igjen...

Skrevet

dette er ganske basic stuff, det handler om hvordan man henter ut resultater fra mysql med php, jeg vil anbefale deg å se under mysql seksjonen på www.php.net, der står det mange bra eksempler.

 

eller ta en titt her så blir alt mye lettere for deg å forstå.

Skrevet

har kommet frem med dette forsøket:

 

function online()
{
$query = "SELECT brukernavn FROM brukere WHERE sistinnlogget = (now()+300)"; 
$result = mysql_query($query); 
$number = mysql_num_rows($result); 

if ($number == 0) {
echo "det er ingen pålogget akkurat nå";

} else {
echo "noen er pålogget";

}
}

 

problemet er at det aldri er noen pålogget.

gir meg ikke før jeg får det til :roll:

Skrevet

      mysql_query("UPDATE brukere SET sistinnlogget=now() WHERE id='$id'"); 

 

fungerer helt greit når man logger inn. via phpmyadmin ser man at sistinnlogget er oppdatert. *tilnærmet fortvilet*

Skrevet

jeg ville endret:

"SELECT brukernavn FROM brukere WHERE sistinnlogget = (now()+300)";

 

til

"SELECT brukernavn FROM brukere WHERE sistinnlogget > (now()- interval 5 minute)";

 

:)

Skrevet

perfekt =D

 

går det ann å legge (now()- interval 5 minute) inn i en variabel? skal brukes til if ($venn = $brukernavn && $tid = now()- interval 5 minute)

Skrevet

javisst, det burde gå fint. men husk på at dette er mysql funksjoner og ikke php funksjoner. ikke trekk mysql spørringen ut i en if-setning i php, det blir bare tull.

 

da er det bedre å regne om til epoch tid, unix_timestamp(dato_kolonne) (mysqlfunksjon)

 

og pass på å ha 2 "="-tegn, if($venn == $brukernavn [...] )

Skrevet
javisst, det burde gå fint.

Så braaa!!

 

$tidB = mysql_result($result,0,"sistinnlogget");
$tidA = unix_timestamp($tidB) (- interval 15 minute)


if ($tidA == now()) {

 

Ja det er hjemmelaget

Ja jeg er stolt av det

Nei det funker ikke... har garantert gjort noe galt på unix_timestamp, var innom manualen på mysql.com men synes ikke den var utfyllende...

Skrevet

fjartan:

går det ann å legge (now()- interval 5 minute) inn i en variabel?

 

torbjørn:

regne om til epoch tid, unix_timestamp(dato_kolonne) (mysqlfunksjon)

 

fjartan:

 

$tidA = unix_timestamp($tidB) (- interval 15 minute)

 

vil gjerne vise en if-else men hører jo at det er ikke lurt å blande mysql og php i en if-else.

 

Dette er hele problemet:

 

<span class="text"><i>Sist innlogget: 
<?php
$tidB = mysql_result($result,0,"sistinnlogget");
$tidA = unix_timestamp($tidB) (- interval 15 minute)


if ($tidA == now()) {
echo "online nå!";
} else {
echo date("d.m.Y H:i",strtotime($innlogget));
}

 

 

hilsen kryptiske fjartan (evig optimist :nice: )

Skrevet

jeg mener, hva vil du ha i en variabel og hvorfor - vil du lettere kunne sette antall minutter du sjekker mot? isåfall veldig enkelt:

 

function online()
{

$tidsintervall = 15;

$query = "SELECT brukernavn FROM brukere WHERE sistinnlogget  > now() - interval $tidsintervall minute"; 
$result = mysql_query($query); 
$number = mysql_num_rows($result); 

if ($number == 0) {
echo "det er ingen pålogget akkurat nå";

} else {
echo "noen er pålogget";
}
}

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...