![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 2 Dołączył: 23.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Na początku opiszę o co mi chodzi.
Robię obecnie skrypt, który posortuje produkty w zależności od lokalizacji od kodu pocztowego (tu już napisałem skrypt, który zwraca mi kody pocztowe w kolejności od najbliższego do najdalszego), w bazie zapisuje kod pocztowy danego produktu. Jak się zabrać do posortowania tego? Zupełnie nie mam pomysłu. Reasumując: chodzi mi o posortowanie wg tego co wypluje PHP, bo w bazie nie mam żadnych zależności między danymi kodami pocztowymi. Ten post edytował dragonsokol 21.10.2011, 00:53:30 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 176 Pomógł: 18 Dołączył: 5.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż strukturę bazy i to co już zrobiłeś.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 2 Dołączył: 23.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chcę by baza posortowała mi w zależności od odległości od danego ZIP code. Czyli wpisuję np. 10km od 123, skrypt znajduje, że najbliższym ZIPem jest 321, następnym 155, 555, itd.. Nie mają być one posortowane liczbowo (od najmniejszej/do największej i odwrotnie). Chyba, że poprzez PHP będzie szybciej? Tzn. wyfetchować wszystko i wybrać to, co mnie interesuje. Ten post edytował dragonsokol 21.10.2011, 06:21:31 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Z ciekawości wszedłem w ten topic. Początkowo myślałem że jakiś banal, a jednak nie.
Rzecz jest o wiele cięższa. Musisz mieć właściwie dodatkową tabelę z pozycją x i y kodów, powiedzmy takie rozmieszczenie na mapie no i wyliczać sobie wektor(ew w bazie zostawić wektor, hmm, to by było chyba optymalne). No i poszukiwać nie po żadnych współrzędnych, lecz po wektorach. Tak chyba najłatwiej to by szło zrobić ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 29 Dołączył: 18.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Coś mi się wydaje że w mysql można zrobic:
-------------------- Kto rano wstaje ten leje jak z cebra.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 2 Dołączył: 23.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam w bazie zapisane współrzędne, i na tej podstawie określa skrypt dystans.
Co do tego "ORDER BY FIELD" to posortuje mi dobrze nawet, jeżeli nie będzie danego kodu pocztowego? Po prostu go ominie? EDIT: testowałem ORDER BY FIELD, niestety działa bardzo słabo..
Zupełnie nie układa według kolejności ![]() Ten post edytował dragonsokol 21.10.2011, 15:25:32 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 29 Dołączył: 18.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Może tak zadziała:
-------------------- Kto rano wstaje ten leje jak z cebra.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 2 Dołączył: 23.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, nie działa. Produkty bez zip code (z zerowym) przeplatają się z tymi które mają, pozatym też zwraca je nie zawsze dobrze..
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 10 Dołączył: 1.03.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ok więc tak:
Powiedzmy, że masz tablice kodów pocztowych razem z szerokościa i długościa geograficzną. id kod lat long Pierw wyszkujesz w tej bazie kod pocztowy który szukasz (Z wyszukanego kodu pocztowego dostajesz lat_podanego_kodu i long_podanego_kodu) a następnie zapytanie:
W wyniku otrzymasz posortowane kody po odległości mniejszej niż 25km. -------------------- Facead.pl - Social Media Agency
Fishcode.pl - Blog |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 07:48 |