Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Zliczanie rekordów i przypisywanie ich liczby do usera..
Forum PHP.pl > Forum > Przedszkole
pa-jong
Witam szanownych Panów,
Znowu potrzebuję waszej pomocy smile.gif


Oto problem,
Dwie tabele USERS i MESSAGE.

W tabeli USERS mam
UserID | NickID | ... |

z kolei w tabeli MESSAGE
UserID | Message | ... |

Cel
Zliczyć i przypisać liczbę wiadomości do konkretnego Nicka..

Do czego doszedłem..

Zliczyłem i wyświetliłem ilość wiadomości dla każdego UserID kod poniżej:

  1. $wynik = mysql_query("SELECT count(message) AS ile, user_id FROM $tabela GROUP BY user_id ORDER BY ile DESC");
  2.  
  3.  
  4. echo "<div style='margin: 0 20 0 0; float: left;'>
  5.  
  6. <table border='0' cellpadding='0' cellspacing='2'>
  7. <tr>
  8. <td colspan='2' class='title'>".$lista."</td>
  9. </tr>
  10. <tr>
  11. <td colspan='2' class='separator'></td>
  12. </tr>
  13. <tr>
  14. <td class='cell2'>User ID</td>
  15. <td class='cell2'>Postów</td>
  16. </tr>";
  17.  
  18.  
  19.  
  20. $i=0;
  21. while ($i < 100) {
  22.  
  23. $userid = mysql_result($wynik,$i,"user_id");
  24. $ile = mysql_result($wynik,$i,"ile");
  25.  
  26.  
  27. echo "<tr>
  28. <td class='cell'>" .$userid. "</b></td>
  29. <td class='cell'>" .$ile. "</td>
  30. </tr>";
  31.  
  32. $i++;
  33. }
  34.  
  35. echo "</table></div>";



Co w efekcie daje wynik:
( pomijając sortowanie w kodzie wyżej )


UserID | Postów
-------------------
1 | 22
2 | 24
3 | 54
4 | 22
-------------------


Na czym stoje ?
Nie przychodzi mi do głowy żaden pomysł na połączenie UserID z tabeli MESSAGE i NickID z tabeli Users :/
Wiem jak wyciągnąć nicki z bazy ale nie wiem jak to połączyc razem aby zamiast cyferek z ID wyswietlaly sie nicki :/


Doradzicie ?




EDIT..

Napisałem tez drugi kod który działa identycznie, z ty ze:
1. w tym pierwszym wiem jak prosto wyświetlić powiedzmy 5 rekordów nie wiem jak wyświetlić wszystkie...
2. w tym niżej odwrotnie wiem jak wyświetlić wszystkie ale nie wiem jak wyświetlić 5 haha.gif


  1. if(mysql_num_rows($wynik) > 0) {
  2.  
  3.  
  4. echo "<div style='margin: 0 20 0 0; float: left;'><table border='0' cellpadding='0' cellspacing='2'>
  5. <tr>
  6. <td colspan='2' class='title'>".$lista."</td>
  7. </tr>
  8. <tr>
  9. <td colspan='2' class='separator'></td>
  10. </tr>
  11. <tr>
  12. <td class='cell2'>User ID</td>
  13. <td class='cell2'>Liczba Postów</td>
  14. </tr>";
  15.  
  16. while($r = mysql_fetch_assoc($wynik)) {
  17.  
  18. $userid = $r['user_id'];
  19. $ile = $r['ile'];
  20.  
  21. echo "<tr>
  22. <td class='cell'><b><center>" .$userid. "</center></b></td>
  23. <td class='cell'><b><center>" .$ile. "</center></b></td>
  24. </tr>";
  25.  
  26. }
  27.  
  28. echo "</table><br><br></div>";
  29. }
bastard13
  1. $wynik=mysql_query("SELECT count(m.message) AS ile, u.nickid as nick FROM users as u,message as m WHERE u.userid=m.userid GROUP BY m.user_id ORDER BY ile DESC");
pa-jong
Przez chwile mi mały Sajgon zrobiłeś, ale już ogarnąłem i działa perfekt. Dzięki smile.gif
W międzyczasie jak odpowiadałeś edytowałem swój 1 post i dodałem drugi kod, czy wiesz jak za jego pomocą wyświetlić np tylko 10 rekordów ?
bastard13
http://webmade.org/kursy-online/limit-kurs-mysql.php
Tam masz dokładnie to czego ci trzeba:)
pa-jong
hmm fakt nie pomyślałem o "LIMIT", co prawda chodziło mi i ograniczenie za pomocą php a nie zapytania do MySQL ale po co komplikować sobie życie smile.gif

Jeszcze raz dzięki smile.gif
Pozdrawiam smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.