Avatar billede stormdk Nybegynder
20. oktober 2005 - 20:22 Der er 5 kommentarer

php function til online system

Hej exp.dk brugere!

Jeg er igang med et community og vil nu tjekke om brugerne er online, ved hjælp af en function. Har fået det til at virke uden at bruge en function, men vil gerne have lidt mere struktur på koden, så vil have lagt det i en function, og til det kan jeres hjælp bruges.

Jeg har koden til functionen her, som tydeligvis ik virker :)

function online($online) {
$Getuser = mysql_query("SELECT * FROM users WHERE id = '$online'");
while($ext = mysql_fetch_array($Getuser)){
if($ext['activity'] == ""){
          $ans = hehe;
          }
          $timestamp = 5 + date(ynjHi);
          if($ext['activity'] < 0 + $timestamp && $ext['activity'] != ""){
          $ans = hehe1;
          }elseif($ext['activity'] > 0 + $timestamp){
          $ans = hehe1;
          }
          }
          return $online;
          }


Og kaldet til functionen :

$ext = $rs;
online($_GET['id']);

Skal lige siges jeg ikke er særlig erfaren udi functions, og det er nødvendigt at have en forskellig parameter foran (alt $ext skal kunne variere til at være $rs og $rs2 osv.).

Nogen bud?
Avatar billede nielle Nybegynder
20. oktober 2005 - 20:38 #1
Du gør meget ud af at tildele $ans en værdi inde i funktionen - du bruger den bare ikke til noget. Skulle den ikke returneres fra funktionen på en eller anden måde?

Du returnerer $online fra funktionen, men du laver ikke noget med den inde i funktionen. Derfor er det det samme som kom der kommer ud igen.

Enten skal din funktion selv udskrive noget (det gør den ikke) eller også skal den returnere noget og dette noget skal så bruges (men det gør du heller ikke).

Hvis du nu starter med at skrive:

echo online($_GET['id']);

- så vil du i det mindste kunne se hvad finktionen returnere.
Avatar billede stormdk Nybegynder
20. oktober 2005 - 20:43 #2
Har rettet funktionen til:

function online($online) {
$Getuser = mysql_query("SELECT * FROM users WHERE id = '$online'");
while($ext = mysql_fetch_array($Getuser)){
if($ext['activity'] == ""){
          echo"Not online;";
          }
          $timestamp = 5 + date(ynjHi);
          if($ext['activity'] < 0 + $timestamp && $ext['activity'] != ""){
          echo"Online";
          }elseif($ext['activity'] > 0 + $timestamp){
          echo"Not online";
          }
          }
          return $online;
          }

og udskrevet med echo"online($_GET[id])";

den udskriver :
online(1) , og id'et er 1.
Avatar billede stormdk Nybegynder
20. oktober 2005 - 20:44 #3
Har løst problemet :)

Tak for hjælpen.
Avatar billede nielle Nybegynder
20. oktober 2005 - 20:46 #4
... jamen så vil jeg da driste mig til at lægge et svar :^)
Avatar billede nielle Nybegynder
05. november 2005 - 08:33 #5
?
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