![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 207 Pomógł: 44 Dołączył: 18.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, robię serwis z nieruchomościami no i natknąłem się na niemały problem. Mianowice przy wyszukiwaniu ofert muszę założyć taki filtr który omijał by zdublowane oferty ... Oferty z takim samym miastem, ulicą, ilością pięter i powierzchnią są teoretycznie takie same. Z tym, że powierzchnia musi być zaokrąglona do liczby całkowitej...
Teoretycznie oferty: MIASTO | ULICA | POWIERZCHNIA ------------------------------------------ NazwaMiasta | NazwaUlicy | 999.5 NazwaMiasta | NazwaUlicy | 1000 NazwaMiasta | NazwaUlicy | 1000.5 są takie same... Pomyślałem, żeby użyć i później dać
Ale pole powierzchnia trzeba by zaokrąglić i nie wiadomo czy w górę czy w dół ... Ktoś ma jakieś pomysły ![]() Ma ktoś jakieś pomysły? Dzięki za jakiekolwiek sugestie Ten post edytował maniana 18.05.2007, 10:22:11 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
Taka sugestia:
Zastosowałbym funkcję MySQLa Round() Oraz bezcenne wskazówki Sedziwoja z tego tematu Pozdrawiam -------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 207 Pomógł: 44 Dołączył: 18.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
No cóż, round() tutaj wiele nie pomoże
zwraca nam taki wynik: 1 => 999.5 | NazwaMiastaNazwaUlicy999 2 => 1000.5 | NazwaMiastaNazwaUlicy1000 3 => 1000 | NazwaMiastaNazwaUlicy1000 Rekord 2 i 3 dostały tą samą wartość pola filtr ale rekord pierwszy już nie... Chodzi o to by rekordy 1 i 2 nie zostały zostały wyświetlone. Rekord 3 niby jest najbliższy prawdy ponieważ jego powierzchnia zawiera się pomiędzy powierzchnią rekordu 1 i 2. Takie rozwiązanie wydało mi się najlepsze ale jak widać trzeba by liczby zaokrąglać w dół i w górę (floor i ceiling) ale i tak nie wiadomo kiedy jakie zaokrąglanie wybrać. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
A skąd MySQL ma wiedzieć, czy chcesz zamieniać 999.5 na 1000, czy na 999? Wydaje mi się, że możesz co najwyżej pobrać średnią wielkość powierzchni dla danego miasta i ulicy a następnie "podobne" wpisy pobierać z warunkiem:
WHERE powierzchnia BETWEEN $avg-1 AND $avg+1 http://dev.mysql.com/doc/refman/5.0/en/gro...ml#function_avg -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 207 Pomógł: 44 Dołączył: 18.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jednak by ominąć takie rekordy trzeba sporo się napocić. Pozostaje jednak sposób opisany powyżej lub sprawdzanie danych przy dodawaniu ofert.
Można jeszcze zaokrąglać powierzchnie do 10 za pomocą Jednak 10m2 to dość sporo. W każdym razie, dzięki za sugestie Ten post edytował maniana 21.05.2007, 10:18:21 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 06:36 |