Avatar billede nicocarlos Nybegynder
18. september 2003 - 20:05 Der er 7 kommentarer og
1 løsning

counter virker ikke?

min counter virker ikke, den viser hele tiden 1 user online, også selvom der er flere + at den ikke gemmer ip adessen i min mySQL database, jeg har tager database oplysningerne væk fra scriptet:

<?php
global $REMOTE_ADDR, $display;

$data_refresh = 180;

$timestamp = time();
$user_ip = $REMOTE_ADDR;


$online_query = "SELECT * FROM {$db_table}";
$exists_query = "SELECT ip FROM {$db_table} WHERE ip='{$user_ip}'";
$update_query = "UPDATE {$db_table} SET timestamp='{$timestamp}' WHERE ip='{$user_ip}'";
$insert_query = "INSERT INTO {$db_table} (ip, timestamp) VALUES ('{$user_ip}', '{$timestamp}')";



$mysql_link = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name);


if (mysql_num_rows(mysql_query($exists_query)) == 0) {
mysql_query($insert_query);
} else {
mysql_query($update_query);
}

$online = mysql_query($online_query);
while($data=mysql_fetch_assoc($online)) {
$difference = $timestamp - $data['timestamp'];
if ($difference > $data_refresh) {

  $delete_query = "DELETE FROM {$db_table} WHERE timestamp='$data[timestamp]'";
  mysql_query($delete_query);
  $users_online = $users_online - 1;
}
}

$users_online = mysql_num_rows(mysql_query($online_query));

if ($users_online > 1) {
  print "$users_online users are online.";
} elseif ($users_online == "1") {
  print "$users_online user is online.";
} elseif ($users_online == "0") {
  print "There are no users online.";
}
?>

Håber en kan hjælpe takker
Avatar billede tipsen Nybegynder
18. september 2003 - 20:17 #1
Du kan starte med at slå følgende to linier sammen:

$online_query = "SELECT * FROM {$db_table}";
$users_online = mysql_num_rows(mysql_query($online_query));

til:

$users_online = mysql_result(mysql_query("SELECT COUNT(*) FROM $db_table"), 0);

Derudover kan du rette bunden til:

if ($users_online > 1) {
  print "$users_online users are online.";
} elseif ($users_online == 1) {
  print "$users_online user is online.";
} else {
  print 'There are no users online.';
}
Avatar billede nicocarlos Nybegynder
18. september 2003 - 20:45 #2
Notice: Undefined variable: online_query in \test2\users.php on line 31

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in test2\users.php on line 32
1 user is online.

Så siger det.
Avatar billede nicocarlos Nybegynder
18. september 2003 - 20:51 #3
line 31: $online = mysql_query($online_query);
line 32: while($data=mysql_fetch_assoc($online)) {
Avatar billede tipsen Nybegynder
18. september 2003 - 21:26 #4
Glem min første rettelse igen - så ikke at du rent faktisk brugte hele resultatsættet til noget!
Avatar billede nicocarlos Nybegynder
18. september 2003 - 21:40 #5
okay men hvad kan problemet, så være, min databaser tager ikke ip adressen og tæller ikke til mere end 1
Avatar billede nicocarlos Nybegynder
18. september 2003 - 21:43 #6
men der er stadig ikke nogen fejlmeddelse....
Avatar billede nicocarlos Nybegynder
18. september 2003 - 21:46 #7
du må også godt lave den mere enkel hvis du vil, jeg er ligeglad bare den kommer til at virke og jeg kan sætte max users online: og andre ting på.
Avatar billede nicocarlos Nybegynder
08. august 2004 - 01:51 #8
Løst! Ved et hentet script som jeg ikke engang bruger mere :)
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