Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sortowanie wedlug ilosci wysapien
jaco
post 19.04.2004, 20:52:57
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 1
Dołączył: 15.01.2003

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


Mam taki problem - musze posortowac wyniki wedglug ilosci wystapien danego ciagu...

O ile dobrze pamietam bylo to juz prezentowane na forum lecz nie potrafilem sie tego doszukac - bede wdzieczny za link/odpowiedz.
Go to the top of the page
+Quote Post
kossa
post 19.04.2004, 21:00:42
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


select * from $table where $pole=$warunek order by $pole_z_bazy desc lub asc

to kwerenda wyciaga z tabeli dane gdzie wartosc pola $pole jest rowna $warunkowi i sortuje wedlug jakiegos pola innego np.: id a desc/asc sluzy do okreslenia sposobu sortowania - rosnaco lub malejaco

Kossa
Go to the top of the page
+Quote Post
jaco
post 19.04.2004, 21:15:08
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 1
Dołączył: 15.01.2003

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


Znowu bez przesady - to jest wzor typu echo 'Hello world!'; !!

Chce posortowac wedlug wyniki wedlug LICZBY wystapien danego ciagu w danej komorce.
Go to the top of the page
+Quote Post
Yarecki
post 19.04.2004, 23:50:09
Post #4





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Gdynia

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


Chyba chodzi Ci o ten link: http://dev.mysql.com/doc/mysql/en/Counting_rows.html
Go to the top of the page
+Quote Post
BzikOS
post 20.04.2004, 00:01:13
Post #5





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Nie, jemu zapewne chodzi o odpowiednik substr_count() w MySQL'u. Niestety ja nie znam sad.gif
Go to the top of the page
+Quote Post
FiDO
post 20.04.2004, 00:59:37
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Nie ma takiej funkcji, ale mozna zrobic pare roszad i otrzymac odpowiedni wynik winksmiley.jpg
[sql:1:668894b48f]SELECT
text,
LENGTH(text) - LENGTH(REPLACE(text, '$search', SUBSTRING('$search',2))) substr_count
FROM tabela
ORDER BY substr_count DESC[/sql:1:668894b48f]


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
jaco
post 20.04.2004, 17:49:40
Post #7





Grupa: Zarejestrowani
Postów: 115
Pomógł: 1
Dołączył: 15.01.2003

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


Nie wiem co napisalem ale dziala bardzo dobrze biggrin.gif

A myslalem, ze znam SQL... winksmiley.jpg
Go to the top of the page
+Quote Post
FiDO
post 20.04.2004, 18:30:43
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Wolalbym jednak, zebys wiedzial, wiec postaram sie wytlumaczyc.

Po kolei:

1) REPLACE(text, '$search', SUBSTRING('$search',2)

zamieniamy kazde wystapienie szukanego ciagu na dowolny ciag, ktory jest o jeden znak krotszy od szukanego (dlaczego? ano dlatego, ze na kazdym znalezionym wyrazie skracamy caly ciag o jedna litere),
ja akurat wybralem substringa (ucinam od drugiego znaku do konca, czyli wynik jest o 1 krotszy niz orginalny wyraz), bo to mi pierwsze wpadlo na mysl i jest chyba jedna z szybszych alternatyw (mozna tez np. REPEAT('*', LENGTH($search)) ale to dluzsze i chyba mniej zrozumiale na pierwszy rzut oka - nie wiem jak z szybkoscia)

2) LENGTH(text) - LENGTH(REPLACE(text, '$search', SUBSTRING('$search',2)))

mierzymy ilosc liter w orginalnym tekscie, potem ilosc liter w tekscie z wyzej opisana podmiana
odejmujemy to od siebie i jest wynik smile.gif
Dlaczego? to juz pisalem wczesniej, kazde wystapienie szukanego ciagu "zbiera" jedna literke, wiec ilosc zabranych literek jest rowna ilosci wystapien danego ciagu, jasne? smile.gif


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
jaco
post 20.04.2004, 22:18:43
Post #9





Grupa: Zarejestrowani
Postów: 115
Pomógł: 1
Dołączył: 15.01.2003

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


Jak najbardziej - to mi tylko uswiadomilo jak skromna jest moja wiedza na temat SQL (bo sam pomysl jest prosty i cwany swoja droga winksmiley.jpg)...

Cieszy mnie fakt, ze wszystko jest tak odrazu w wyniku - juz moge pozbyc sie obliczen na tablicach smile.gif
Go to the top of the page
+Quote Post
FiDO
post 20.04.2004, 23:31:01
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat
Jak najbardziej - to mi tylko uswiadomilo jak skromna jest moja wiedza na temat SQL (bo sam pomysl jest prosty i cwany swoja droga winksmiley.jpg)...

No wlasnie, sam pomysl jest trywialny smile.gif Zeby nie bylo to sam na niego nie wpadlem winksmiley.jpg Pomogl mi uboottd ktoryms swoim postem kiedys, jak ktos mial podobny problem.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
DeyV
post 21.04.2004, 08:32:52
Post #11





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




problem miał chybva speniu i jego wyszukiwarka.

a swoją drogą - nie moge pojąć 1 prostej rzeczy - dlaczego MySQL nie ma tak trywialnej funkcji jak zliczanie wystąpień 'cukru w cukrze' winksmiley.jpg


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
jaco
post 21.04.2004, 15:23:07
Post #12





Grupa: Zarejestrowani
Postów: 115
Pomógł: 1
Dołączył: 15.01.2003

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


Cytat
nie moge pojąć 1 prostej rzeczy - dlaczego MySQL nie ma tak trywialnej funkcji jak zliczanie wystąpień 'cukru w cukrze' winksmiley.jpg


A dlatego, zebysmy mogli sobie pokombinowac tongue.gif
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:35