Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]zooptymalizowanie skryptu
bialko0019
post
Post #1





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

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


Witam. Dosyć niedawno zacząłem odkrywać programowanie obiektowe, więc mam pytanie. Stworzyłem skrypt, który wyciąga z bazy danych jednym zapytaniem dzisiaj, wczoraj zalogowanych userów, oraz dzisiaj i wczoraj zarejestrowanych. Wszystko ładnie działa, jednak gdybym tworzył strukturalnie, wydaje mi się było by mniej kodu - tyle, że więcej zapytań do bazy danych - a chciałbym wszystko zminimalizować (IMG:style_emoticons/default/winksmiley.jpg) To w kwestii nauki.

Napisałem tak ( pewnie chaotycznie (IMG:style_emoticons/default/winksmiley.jpg) ); :

  1. <?php
  2.  
  3. // ile osób w bazie
  4. // ile dzisiaj zalogowanych
  5. // ile wczoraj zalogowanych
  6. // ile dzisiaj rejestrowanych
  7. // ile wczoraj zarejestrowanych
  8.  
  9. class statystyki{
  10.  
  11. function osoby(){
  12.  
  13. $zapytanie = mysql_query("SELECT * FROM uzytkownicy WHERE login NOT LIKE''");
  14. $zawartosc = mysql_num_rows($zapytanie);
  15. $this->ogolem=$zawartosc;
  16. $i = 0;
  17. while($dana=mysql_fetch_array($zapytanie)){
  18.  
  19. $osoby[$i] = new statystyki;
  20. $osoby[$i] -> zalogowany = $dana['ostatnie_logowanie'];
  21. $osoby[$i] -> rejestracja = $dana['rejestracja'];
  22.  
  23. $i++;
  24. }
  25. $dzisiajz = 0;
  26. $dzisiajr = 0;
  27. $wczorajz = 0;
  28. $wczorajr = 0;
  29. foreach($osoby as $id => $statystyki){
  30.  
  31. if($statystyki -> zalogowany >= date('Y-m-d 00:00:00'))
  32. {
  33. $dzisiajz++;
  34. }
  35.  
  36. if($statystyki -> rejestracja >= date('Y-m-d 00:00:00'))
  37. {
  38. $dzisiajr++;
  39. }
  40.  
  41. if($statystyki -> zalogowany >= date('Y-m-d 00:00:00', strtotime("-1 day")) && $statystyki -> zalogowany < date('Y-m-d 00:00:00'))
  42. {
  43. $wczorajz++;
  44. }
  45.  
  46. if($statystyki -> rejestracja >= date('Y-m-d 00:00:00', strtotime("-1 day")) && $statystyki -> rejestracja < date('Y-m-d 00:00:00'))
  47. {
  48. $wczorajr++;
  49. }
  50.  
  51.  
  52. }
  53. $this->dzisiaj=$dzisiajz;
  54. $this->dzisiajr=$dzisiajr;
  55. $this->wczorajz=$wczorajz;
  56. $this->wczorajr=$wczorajr;
  57.  
  58.  
  59. }
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. }
  69.  
  70. $obiekt = new statystyki;
  71. $obiekt->osoby();
  72. echo $obiekt->dzisiajz; // dzisiaj zalogowani
  73. echo $obiekt->dzisiajr; // dzisiaj zarejestrowani
  74. echo $obiekt->wczorajl; // wczoraj zalogowani
  75. echo $obiekt->wczorajr; // wczoraj zarejestrowani
  76.  
  77. ?>
  78.  
  79.  
  80.  


Tyle w tym dobrego, że całą klasę mam w innym pliku i go includuje, a w dowolnym miejscu wpisuję tylko dwa wyrazy : $obiekt->zalezy_co_chce_otrzymac . Natomiast strukturalnie napisałbym cztery proste funkcje, które wyciągają odpowiednio z bazy danych odpowiednie wartości, albo jedną, w której wpisuję warunek...

Jakie inne zastosowania mógłbym użyć, by to "programowanie obiektowe" w tym przypadku co podałem, było czytelniejsze, o znacząco mniej objętości ? W tym przypadku obciążam bardziej tylko serwer, a w przypadku wielu zapytań obciążył bym bardzo znowu bazę danych... ? Nie chodzi mi tutaj o gotowe rozwiązanie, tylko o wskazówki, czego jeszcze nie zastosowałem, co ułatwiło by pracę na takich właśnie skryptach o oparciu o obiektowość?

Pozdrawiam!

Ten post edytował bialko0019 13.11.2010, 12:10:14
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: 23.12.2025 - 11:45