Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Tworzenie statystyki
boro11
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


Witam!
W bazie danych mam następującą strukture:

(IMG:http://clip2net.com/clip/m0/1355783186-clip-15kb.png)

itd. itd.

Rekordów jest w tej tabeli tysiące albo ich setki.

Chcę zrobić zestawienie który użytkownik(nick) zarobił najwięcej w danym przedziale czasu, chodzi mi o ubiegły tydzień.

Jak skonstruować zapytanie w php tak aby mi to policzyło?

Co mam wpisać w warunku where, nie chodzi nawet o porównywanie daty bo to nie jest problemem, ale co mam wpisać user = ?, żeby liczyło każdy wystąpienie dla usera razem do jego całkowitego wyniku, a nie oddzielnie. Zakładająć, że nie wiem który użytkownik zarabia najwięcej i chce to dopiero sprawdzić.
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Najprostsze rozwiązanie to pogrupowanie wyników (GROUP BY `nick`) oraz sumowanie (SUM(`amount`) as total)
Go to the top of the page
+Quote Post
boro11
post
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


Dziękuję bardzo za naprowadzenie (IMG:style_emoticons/default/smile.gif)

Wrzucam co stworzyłem:

  1. <?
  2. $stamp = strtotime("-1 week");
  3. $data = date("Y-m-d", $stamp);
  4.  
  5. $query = "SELECT nick, SUM(amount) FROM test_sitepay WHERE date > '$data' GROUP BY nick ORDER BY SUM(amount) DESC LIMIT 10";
  6.  
  7. $result = mysql_query($query) or die(mysql_error());
  8.  
  9. echo "<table border='1'>";
  10. echo "<tr> <th>Username</th> <th>Amount:</th> </tr>";
  11.  
  12. while($row = mysql_fetch_array( $result )) {
  13.  
  14. echo "<tr><td>";
  15. echo $row['nick'];
  16. echo "</td><td>";
  17. echo $row['SUM(amount)']."$";
  18. echo "</td></tr>";
  19. }
  20.  
  21. echo "</table>";
  22. ?>


Może komuś się przyda, a jeśli ktoś ma jakieś uwagi jakby to zoptymalizować to chętnie posłucham (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


1. Nadawaj aliasy. Nazwa pola - Sum(amount) jest dość nieprzyjazna.
2. Nazwy pól używaj w grawisach - `. Zarówno w MySQL, jak i PHP "date" jest funkcją - może to narobić kłopotów.
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: 5.10.2025 - 09:58