![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Mam sobie taką małą bazę danych, gdzie są trzy pola. ID <-- Id usera suma <-- suma "czegośtam" usera rank <-- o tym za chwilę Tabela ma w sobie kilku userów o różnych wartościach w polu "suma" Teraz chciałbym przeprowadzić ranking za pomocą pola rank. Czyli: Nie wiem jak napisać w php/mysql skrypt, który sortuje rekordy pod względem wartości pola "suma", od największego do najmniejszego, i jego pozycje zapisuje do pola rank. Pomożecie? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Z góry dziękuję i pozdrawiam Ten post edytował Mescam 27.08.2007, 11:07:28 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 210 Pomógł: 20 Dołączył: 7.07.2006 Skąd: Krotoszyn Ostrzeżenie: (0%) ![]() ![]() |
Małe przegięcie... Użyj wyszukiwarki na forum, albo google
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
A szukaj według słów: [sql]ORDER BY, UPDATE, [php]foreach
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Szukam szukam i jakoś mi to nic nie daje (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Mam cosik takiego
Ale nie bardzo działa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Co to znaczy "nie bardzo działa"?
Co to jest "doquery"? Osobna funkcja która wywołuje zapytania sql? Jeśli tak, to pewnie zwraca wartość wybraną selectem (tablicę). Więc:
A jeśli nie, to powiedz co zwraca funkcja doquery... btw: Jeżeli już musisz używać tego czegoś (jak to ` się u licha nazywa??), to rób to konsekwentnie, nazwę tabeli też, nie tylko nazwy pól. Inaczej to bez sensu... A najlepiej nie używaj i nie słuchaj tych, którzy mówią że warto. Nie warto... Ten post edytował drPayton 27.08.2007, 14:59:35 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ah, zapomniałem powiedzieć, doquery to funkcja mysql_query() (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Przepraszam (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Zaraz przetestuje to co napisałeś/ edit Warning: Invalid argument supplied for foreach() :/ Ten post edytował Mescam 27.08.2007, 15:15:39 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Czyli zamieniłeś tylko nazwę funkcji na potrzeby posta? W takim razie wróć do poprzedniego kodu i ponawiam pytanie: Co to znaczy "nie bardzo działa"?
Ten post edytował drPayton 27.08.2007, 15:18:21 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hm, ustalmy, że mam taki kod:
Mam 3 userów: User o ID1 - Suma: 0 User o ID2 - Suma: 170 User o ID3 - Suma: 0 User o ID1 w polu rank ma '2' User o ID2 w polu rank ma '2' User o ID3 w polu rank ma '3' A raczej user o id2 powinien mieć rank 1 a 2/3 pozycja losowa |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Wszystko działa poprawnie zgodnie z kodem. Słuchaj:
Deklarujesz zmienną start z początkową wartością 1. Najpierw ją zwiększasz o jeden, a dopiero potem wpisujesz do bazy. Czyli nadawanie "rank'u" zaczynasz od 2! Trochę się zamotałem czytając ten ostatni post, ale chyba wiem o co biega, więc:
W ten sposób nadasz kolejno rosnące wartości rank dla userów, dla których suma jest > 0, i rank == 0, dla tych, gdzie suma jest = 0. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
O, dziękuję za pomoc. O takie coś właśnie mi chodziło.
A tak nawiasem: include(); wykonuje kod zawarty w includowanym pliku? Pozdrawiam. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Tak, include (require) dołącza plik w miejscu wywołania i (jeśli to php) wykonuje go przed przejściem dalej (poniżej wywołania include).
btw: nie include('plik.php'); tylko include 'plik.php'; Include to nie jest funkcja; zastosowanie nawiasów nic wprawdzie nie zmieni, ale po co jak nie trzeba... Ten post edytował drPayton 27.08.2007, 16:51:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.08.2025 - 08:02 |