Gilbert Skrevet 20. oktober 2003 Skrevet 20. oktober 2003 har u en løsning på en "pålogget nå" -liste? man logger seg på via sessions, og ønsker å vite hvem andre som er logget inn. php/mysql
Torbjørn Skrevet 20. oktober 2003 Skrevet 20. oktober 2003 legg inn rad i mysql tabell med tidsupnkt og brukernavn hver gang noen logger seg på eller bruker sidene.
Gilbert Skrevet 20. oktober 2003 Forfatter Skrevet 20. oktober 2003 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
Torbjørn Skrevet 20. oktober 2003 Skrevet 20. oktober 2003 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");
Gilbert Skrevet 20. oktober 2003 Forfatter Skrevet 20. oktober 2003 oppdateringen av tiden er forsåvidt grei, men vil ikke dette kun vise når den aktuelle personen var pålogget sist?
Torbjørn Skrevet 20. oktober 2003 Skrevet 20. oktober 2003 "select [...] order by dato desc limit 1" eller... "select date_format( max(dato) , 'datoformat' ) from online" ...tar seg av det den siste er kanskje best.
[kami] Skrevet 22. oktober 2003 Skrevet 22. oktober 2003 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
Ueland Skrevet 22. oktober 2003 Skrevet 22. oktober 2003 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)"
Gilbert Skrevet 23. oktober 2003 Forfatter Skrevet 23. oktober 2003 $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...
Torbjørn Skrevet 23. oktober 2003 Skrevet 23. oktober 2003 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å.
Gilbert Skrevet 29. oktober 2003 Forfatter Skrevet 29. oktober 2003 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
Torbjørn Skrevet 29. oktober 2003 Skrevet 29. oktober 2003 pass på å oppdatere sistinnlogget i databasen for hvert page hit
Gilbert Skrevet 30. oktober 2003 Forfatter Skrevet 30. oktober 2003 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*
Torbjørn Skrevet 30. oktober 2003 Skrevet 30. oktober 2003 jeg ville endret: "SELECT brukernavn FROM brukere WHERE sistinnlogget = (now()+300)"; til "SELECT brukernavn FROM brukere WHERE sistinnlogget > (now()- interval 5 minute)";
Gilbert Skrevet 31. oktober 2003 Forfatter Skrevet 31. oktober 2003 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)
Torbjørn Skrevet 3. november 2003 Skrevet 3. november 2003 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 [...] )
Gilbert Skrevet 8. november 2003 Forfatter Skrevet 8. november 2003 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...
Gilbert Skrevet 8. november 2003 Forfatter Skrevet 8. november 2003 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: )
Torbjørn Skrevet 8. november 2003 Skrevet 8. november 2003 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"; } }
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå