![]() |
![]() |
![]()
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 |
|
|
![]() |
![]() ![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
chyba jednak był błąd, pisałem wszystko z głowy nie mialem czasu sprawdzić. W zapytaniu kasującym zamiast połączenia warunków słowem AND powinno użyć się słowa OR
-------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 14:10 |