Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Licznik osób Online
sebekzosw
post
Post #1





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. function goscie_online(){
  3.    $timeout = time()-30;
  4.    $add = true;
  5.    $online = 0;
  6.  
  7.    $on = @mysql_query("SELECT * FROM online ORDER BY czas DESC");
  8.  
  9.    while($row = @mysql_fetch_array($on)) {
  10.        if($row['ip'] == IP_UZYTKOWNIKA) {
  11.            @dbquery("UPDATE online SET czas='".time()."' WHERE id='".$row['id']."'");
  12.            $add = false;
  13.        }
  14.    }
  15.  
  16.    if($add) {
  17.        @dbquery("INSERT INTO online (ip, czas) VALUES ('".IP_UZYTKOWNIKA."', '".time()."')");
  18.    }
  19.  
  20.     @dbquery("DELETE * FROM online WHERE czas>'".$timeout."'");
  21.  
  22.    $online = @dbcount("(id)", "online", "czas<$timeout");
  23.    return $online;
  24. }
  25.  
  26. echo goscie_online();
  27.  
  28. ?>


Nie wiem czemu, ale ten skrypt nie działa ;| Mógłby ktoś pomóc w jego naprawie?

Wyskakuje jakiś taki błąd między innymi: "Something is wrong in your syntax obok '* FROM online WHERE czas>='1238963269'' w linii 1Osób online: 0"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


1. Dopisz na początku skryptu:
  1. <?php
  2.  
  3. ini_set('display_errors', 1);
  4.  
  5. ?>

2. Pogoń małpy z kodu. To nie zoo (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

3. Jaki format danych przyjmuje pole czas w bazie?
Go to the top of the page
+Quote Post
sebekzosw
post
Post #3





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


Format danych to liczbowy - INT (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Kildyt
post
Post #4





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

Ostrzeżenie: (0%)
-----


Cytat(mike @ 5.04.2009, 22:31:55 ) *
2. Pogoń małpy z kodu. To nie zoo (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Gratuluję udanego słówka. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Hehe (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Żeby nie było, to do apelu się przychylam.

Co do kodu, to dla mnie jest trochę bezsensu. Zmienna $add jest według mnie bezsensu.
Istnieje coś takiego jak DELETE * FROM? Ja zawsze używam same DELETE FROM. Tak to jest jak się nie idzie do przodu. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował Kildyt 5.04.2009, 21:38:33
Go to the top of the page
+Quote Post
mike
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(sebekzosw @ 5.04.2009, 22:34:40 ) *
Format danych to liczbowy - INT (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Integer powiadasz?
To czemu przyrównujesz do stringa? czas>='1238963269'
Go to the top of the page
+Quote Post
sebekzosw
post
Post #6





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


Cytat(mike @ 5.04.2009, 22:41:58 ) *
Integer powiadasz?
To czemu przyrównujesz do stringa? czas>='1238963269'


Jestem przekonany, że dobrze porównuje - w końcu to i to to liczby ;> (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mike
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(sebekzosw @ 5.04.2009, 22:44:42 ) *
Jestem przekonany, że dobrze porównuje - w końcu to i to to liczby ;> (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Tak Ci się tylko wydaje. To są różne typy danych a to, że akurat string zawiera liczbę to MySQL'a nie interesuje.

Ten post edytował mike 5.04.2009, 21:50:59
Go to the top of the page
+Quote Post
sebekzosw
post
Post #8





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. function goscie_online(){
  3.    $czas = time()+(5*60*60);
  4.    $online = 1;
  5.  
  6.    $r = mysql_num_rows(mysql_query("SELECT * FROM `online` WHERE ip = '".IP_UZYTKOWNIKA."'"));
  7.  
  8.    if ($r ==1){
  9.        $resultstatus = mysql_query("UPDATE online SET czas='".$czas."' WHERE ip='".IP_UZYTKOWNIKA."'");
  10.    } else {
  11.        mysql_query("INSERT INTO `online` (ip, czas) VALUES ('".IP_UZYTKOWNIKA."','".$czas."')");
  12.    }
  13.  
  14.    $odpowiedz = mysql_query("SELECT id,czas FROM online");
  15.  
  16.    while($row = mysql_fetch_assoc($odpowiedz)) {
  17.        $id=($row['id']);
  18.        $czas=($row['czas']);
  19.  
  20.        if ($czas<=time()){
  21.            $odpowiedz=mysql_query("DELETE FROM `online` WHERE id = '$id'");
  22.        }
  23.    }
  24.  
  25.    $online = dbcount("(id)", "online", "czas>".time()."");
  26.    return $online;
  27. }
  28. ?>


Znalazłem jakiś skrypt więc dostosowałem go do swoich potrzeb. Czy wg Was będzie działał poprawnie? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mike
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(sebekzosw @ 5.04.2009, 23:01:50 ) *
Znalazłem jakiś skrypt więc dostosowałem go do swoich potrzeb.
A co z poprzednim? Odpuszczasz bo trzeba pomyśleć chwilę i się wysilić?
Cytat(sebekzosw @ 5.04.2009, 23:01:50 ) *
Czy wg Was będzie działał poprawnie? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Nie. Bo nie dasz radu uruchomić. Nie zasłużyłeś ::
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 23:32