Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sortowanie po liczbie w porzadku tekstowym
marekfan
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.11.2008

Ostrzeżenie: (0%)
-----


Witam
Mam w bazie pole typu INTEGER w którym jest zapisany numer nip.
Jak posortowac potym polu żeby porządek był tak jakby to pole było tekstowe

Pozdrawiam
Go to the top of the page
+Quote Post
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


o ile to MySQL:
  1. SELECT * FROM `tabela` ORDER BY CAST(`pole_liczbowe` AS CHAR);


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
bob1223
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 1.01.2006

Ostrzeżenie: (0%)
-----


A jak posortować takie przykładowe rekordy

Adam 1
Adam 12
Adam 2
Adam 8

na

Adam 1
Adam 2
Adam 8
Adam 12

ASC nie działa
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


A jak bardzo dokladny jest to przyklad? Masz w bazie inne stringi niz "Adam" ile jest spacji po imieniu itp?
Bo chyba nie ma funkcji do "naturalnego sortowania" - a majac pewne ograniczenia mozna to sprytnie inaczej zapisac


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
bob1223
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 1.01.2006

Ostrzeżenie: (0%)
-----


Tabela wygląda tak:

id, siec, nazwa
-----------------
1, 1, Wyszynskiego 1
2, 1, Wyszynskiego 2
3, 1, Broniewskiego 1
4, 1, Broniewskiego 3
5, 1, Broniewskiego 5,
6, 1, Broniewskiego 7,
7, 1, Broniewskiego 9,
8, 1, Broniewskiego 11
9, 1, Sportowa 2

i już będzie problem z budynkiem o nazwie Broniewskiego 11
Go to the top of the page
+Quote Post
zegarek84
post
Post #6





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


tylko jaką masz baze danych??
jesli mysql to zbiór wszystkich potrzebnych funkcji operujących na stringu masz tutaj:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

jesli baza jest w sqlite to tam można łatwo implementować funkcje z php i następnie obrobić string

takie sortowanie nawet dużo bardziej złożone od tego co się pytasz wykonywałem na forumexcel.pl..... napiszę tylko tyle, że musisz poszukać ostatniej spacji gdyż nazwa ulicy może być dwuczłonowa i więcej - i od tej ostatniej spacji wycinasz nazwe ulicy i osobno numer domu.... i sortujesz najpierw po wyciętej nazwie ulicy a następnie po wyciętym numerze domu winksmiley.jpg


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
nevt
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


można dużo prościej:
  1. SELECT * FROM `tabela` ORDER BY BINARY `nazwa`;


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 22:32