![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 0 Dołączył: 17.12.2003 Skąd: Krakół Ostrzeżenie: (0%) ![]() ![]() |
Mam tablicę formatu:
Kod [response] => Array ( [domaininfo] => Array ( [0] => Array ( [record_id] => 5416 [name] => test.pl [type] => MX [value] => test.pl [ttl] => 86400 [prio] => 10 [reverse_name] => pl.test [subdomain_level] => 0 ) [1] => Array ( [record_id] => 5415 [name] => test.pl [type] => A [value] => 195.149.227.83 [ttl] => 86400 [prio] => 0 [reverse_name] => pl.test [subdomain_level] => 0 ) [2] => Array ( [record_id] => 5418 [name] => *.test.pl [type] => A [value] => 195.149.227.83 [ttl] => 86400 [prio] => 0 [reverse_name] => pl.test.* [subdomain_level] => 0 ) [3] => Array ( [record_id] => 5417 [name] => test.pl [type] => TXT [value] => v=spf1 a mx -all [ttl] => 86400 [prio] => 0 [reverse_name] => pl.test [subdomain_level] => 0 ) [4] => Array ( [record_id] => 5419 [name] => *.test.pl [type] => MX [value] => test.pl [ttl] => 86400 [prio] => 10 [reverse_name] => pl.test.* [subdomain_level] => 0 ) [5] => Array ( [record_id] => 5420 [name] => *.test.pl [type] => TXT [value] => v=spf1 a mx -all [ttl] => 86400 [prio] => 0 [reverse_name] => pl.test.* [subdomain_level] => 0 ) [6] => Array ( [record_id] => 5414 [name] => test.pl [type] => NS [value] => ns2.tomekp.rix.pl [ttl] => 86400 [prio] => 0 [reverse_name] => pl.test [subdomain_level] => 0 ) [7] => Array ( [record_id] => 5413 [name] => test.pl [type] => NS [value] => ns1.tomekp.rix.pl [ttl] => 86400 [prio] => 0 [reverse_name] => pl.test [subdomain_level] => 0 ) [8] => Array ( [record_id] => 5421 [name] => test.pl [type] => SOA [value] => ns3.tomekp.rix.pl admin.tomekp.rix.pl 2007011501 10800 1800 604800 86400 [ttl] => 86400 [prio] => 0 [reverse_name] => pl.test [subdomain_level] => 0 ) ) Potrzebuję ją przesortować, najpierw według SOA,NS, a nasŧępnie po name i type, w kolejności, najpierw główna nazwa domeny, w tym przypadku test.pl, później wildcard *.test.pl przy czym rekordy dla test.pl i wildcard, mają być posortowane po typie tj. MX,A,TXT. Jak mogę osiągnąć coś takiego, podejrzewam, że chodzi o napisanie funkcji porównującej do usort, ale nie mam pojęcia jak to zrobić. Ten post edytował tomekp 17.01.2007, 11:01:15 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 6 Dołączył: 10.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
A nie prościej było by to wszystko (całą tablicę) wrzucić do bazy danych a następnie z niej pobrać odpowiednie wyniki?
Po co sobie komplikować sprawę? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 0 Dołączył: 17.12.2003 Skąd: Krakół Ostrzeżenie: (0%) ![]() ![]() |
Po to, że jak mam obsługiwać 50tyś domen, to każde zapytanie do bazy jest ważne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 6 Dołączył: 10.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Bo ja wiem.
A czy taki skrypt który będzie miał "przelecieć" tablice z 50 tys. domen to też nie będzie trwał zbyt długo (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? Niestety nie znam się na tyle by sobie na to odpowiedzieć. Po prostu poszedłem myśląc logicznie. Bazy danych zrobiono po to by gromadzić dane (duże ilości) po to by je łatwiej było sortować i wybierać odpowiednie itp. Można by sobie zostać na plikach tekstowych i było by fajnie. Ciekawe jak by wyglądała np. baza nr tel. takiego sobie telekoma. Ale jeżeli się mylę to mnie poprawcie. Poza tym im bardziej skomplikowany skrypt tym łatwiej o pomyłkę. Tak mi się wydaje. Im prościej tym lepiej. |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Po to, że jak mam obsługiwać 50tyś domen, to każde zapytanie do bazy jest ważne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Przy 50 tysięcy wpisów ... to stanowczo wolałbym zrobić więcej zapytań do bazy .. niż sortować tablicę w php. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 0 Dołączył: 17.12.2003 Skąd: Krakół Ostrzeżenie: (0%) ![]() ![]() |
Sortujesz tablicę dla danej strefy, góra 100 wpisów myślę.
|
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Sortujesz tablicę dla danej strefy, góra 100 wpisów myślę. No to skoro będzie to jednak zapytanie dotyczące 100 wpisów a nie 50 tysiecy .... to i tak lepiej to umieścić w bazie danych, niż sortować w php. Co do samego sortowania, kombinowałbym coś z tablicami, gdzie byłaby zapisana kolejność sortowania, a że chcesz aby było posortowane po dwóch wartościach to dwie takie tablice, odpowiednio ułożone pętle i mnóstwo warunków. Stanowczo robiłbym zapytanie do SQL'a (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 0 Dołączył: 17.12.2003 Skąd: Krakół Ostrzeżenie: (0%) ![]() ![]() |
Prosze uzupelnic tytul topika o odpowiedni tag Poprawione. A co do sortowania, to srotuję już na poziomie bazy, po name, ale później potrzebuję posortować po typie i po priorytecie. Aktualnie robię to w ten sposób:
Co jest wydaje mi się co najmniej mało wydajne. |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Problem zasługuje na to by być na php a nie na Przedszkolu.
Przenoszę. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 22:33 |