Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Liczba aktywnych użytkowników przez ostatnie 24h
GigaDownload
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 27.12.2007

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


Mam taki kod dla liczby aktywnych użytkowników przez ostatnie 24h:



Kod
<?php 
$polaczenie=mysql_connect('','','')
    or die('');

mysql_select_db('')
    or die('');
    
$czas=mktime();
$ip=$_SERVER['REMOTE_ADDR'];
$staryczas=mktime()-86400;


$zapytanie=mysql_query("DELETE FROM dzis WHERE czas<'$staryczas'");

$link=mysql_query("SELECT ip FROM dzis WHERE ip='$ip'");
$ile=mysql_num_rows($link);

if($ile==0)
    {
    mysql_query("INSERT INTO dzis VALUES(NULL,'$ip','$czas')");
    }
else
    {
    mysql_query("UPDATE dzis SET czas='$czas' WHERE ip='$ip'");
    }
$link=mysql_query("SELECT * FROM dzis");
$ile=mysql_num_rows($link);

echo '<b>'.$ile.'</b>';
?>




Czy ten kod jest optymalny? Gromadzi mi się w tabeli od 2300 do 2700 rekordów, więc obrót danych jest trochę duży.
Czy da się jakoś jeszcze zoptymalizować ten kod, by zżerał mniej zasobów konta na hostingu współdzielonym?

Demo działania jest na http://www.gigadownload.net.pl w panelu Statystyki (po prawej).


Pozdrawiam

Ten post edytował GigaDownload 9.11.2008, 19:48:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
GigaDownload
post
Post #2





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 27.12.2007

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


Do wyświetlania ilości online dla jednego serwisu mam:
Kod
<?php
$polaczenie=mysql_connect('','','')
    or die('Nieudane poczenie z baz danych...');

mysql_select_db('')
    or die('Nieudane wybranie bazy danych...');
    
$link=mysql_query("SELECT count(*) FROM tabela1");
$row = mysql_fetch_array($link);
$ile = $row[0];

echo ' <b>'.$ile.'</b>';
?>


Nie możesz przekształcić tego, aby zliczało też tabela2? Nie musi być niezliczanie takich samych IP.


edycja: prosiłbym o odpowiedź
Go to the top of the page
+Quote Post
lukasz_os
post
Post #3





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

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


Jezeli nazwa tabeli to tabela2 to zrob tak:
  1. <?php
  2. $polaczenie=mysql_connect('','','')
  3.     or die('Nieudane poczenie z baz danych...');
  4.  
  5.     or die('Nieudane wybranie bazy danych...');
  6.    
  7. $link=mysql_query("SELECT count(*) FROM tabela1");
  8. $row = mysql_fetch_array($link);
  9. $ile = $row[0];
  10. $link=mysql_query("SELECT count(*) FROM tabela2");
  11. $row = mysql_fetch_array($link);
  12. $ile2 = $row[0];
  13. $ilosc=ile+ile2;
  14. echo ' <b>'.$ilosc.'</b>';
  15. ?>


Pozdrawiam.
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 23:59