Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 9.04.2009 Ostrzeżenie: (0%)
|
Witam. Próbuje napisać kod aby pokazywało mi listę użytkowników oraz ich IP. Te same IP maja być kolo siebie oraz były na tle niebieskim.
Kod:
Nie wiem jak się do tego zabrać a powyższy kod nie działa. Ma ktoś jakieś pomysły? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Adresy IP koło sobie załatwia Ci już pierwsze zapytanie. Drugiego nie potrzebujesz, przecież masz już wszystkie potrzebne Ci informacje w już pobranym zbiorze wyników. Jedyne, co musisz dodać, to warunek, który porówna IP aktualnego wiersza z IP wiersza poprzedniego. Jeśli są takie same, to w obu ustawia ten sam kolor. W sumie trzy-cztery linijki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 9.04.2009 Ostrzeżenie: (0%)
|
Tak tak, łatwo powiedzieć trudniej zrobić ;P Jak w jakiś łatwy sposób moge je 'porównać'?
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%)
|
Użyj GROUP BY ip w zapytaniu
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Loped -> o operatorze == słyszałeś?
Kefirek -> w zapytaniu jest już ORDER BY i to jest rzecz wystarczająca do posortowania. Ten post edytował Zyx 17.05.2009, 19:07:49 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
A gdzieś ty wyczytał, że ja napisałem, że ty coś napisałeś? Pytam się, po co Lopedowi podajesz jakieś GROUP BY, kiedy ma już ORDER BY w swoim zapytaniu, uzyskuje dzięki temu posortowane dane i ma już dosłownie wszystko, czego potrzebuje, dokładnie tak jak napisałem. Jeden prosty if porównujący IP między sąsiednimi wierszami załatwia sprawę (nawet liczyć nie trzeba, ile jest wierszy z jakim adresem IP), a ty mu jakieś kosmiczne zapytania każesz pisać...
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
a ty mu jakieś kosmiczne zapytania każesz pisać... Sorry, że się podłączę, ale będę bronił ~kefirka. Opisana przez autora sytuacja to podręcznikowy przykład na użycie GROUP BY. Uważam, że jest to jedna z podstawowych rzeczy w MySQL, a na pewno dużo bardziej elegancka niż porównywanie sąsiednich wierszy (można się tylko zamotać przy pisaniu tego). |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Weźmy sobie paru użytkowników:
Kod 1 Rafał 13 2 Tomasz 11 3 Rafal 13 4 Tomasz 12 5 Janusz 5 6 Gucio 13 7 Mariusz 5 Co chce autor: Kod 1 Rafał 13 <-- na niebiesko 3 Rafal 13 <-- na niebiesko 6 Gucio 13 <-- na niebiesko 2 Tomasz 11 4 Tomasz 12 5 Janusz 5 <-- na niebiesko 7 Mariusz 5 <-- na niebiesko Wynik, który produkuje GROUP BY: Kod 2 Tomasz 11 1 Rafał 13 5 Janusz 5 Więc? Ponadto, z całym szacunkiem, ale ja tam się nie motam przy pisaniu jednego ifa, który wykonuje operację if($a == $b) ... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
ja tam się nie motam przy pisaniu jednego ifa, który wykonuje operację if($a == $b) ... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wcale tak nie twierdzę. Ale nieco uprościłeś sytuację. Ponieważ to operacja na MySQL, to znasz tylko bieżący rekord. Dlatego musisz mieć dodatkowe zmienne dla zapamiętania poprzedniego i następnego rekordu. Następny to tak na prawdę też bieżący, ale dopiero w następnym kroku. Poza tym musisz zrobić warunki że operujesz na pierwszym albo ostatnim rekordzie. To nie takie hop-siup, że jeden if i == (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował sowiq 17.05.2009, 23:03:48 |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
sowiq - ale komplikujesz... wszystko, byleby tylko w MySQL-u pogrzebać i sobie pracę utrudnić. Przecież te dane trafiają do PHP, kto powiedział, że wszystko należy na etapie MySQL-a przetworzyć? Nikt - SQL pewnych rzeczy Ci nie rozwiąże, nie do tego jest stworzony. Widzisz, że autor tablicuje wyniki, zatem ma dostęp i do obecnego, i do wszystkich poprzednich wierszy. Dodanie dodatkowego warunku zamiast tego kodu to minuta roboty i widzę, że bez podania gotowego kodu się niestety nie obejdzie. Chciałem by autor sam spróbował zaimplementować, ale jak widzę, zostałem sprytnie zsabotowany.
Oto cała trudność zadania. Nie ma to jak komplikować rzeczy proste. |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 9.04.2009 Ostrzeżenie: (0%)
|
Zyx próbowałem Twojego sposobu lecz nic nie wyświetla.
|
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 22:21 |