![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 215 Pomógł: 1 Dołączył: 13.04.2003 Skąd: z ławki przed blokiem Ostrzeżenie: (0%) ![]() ![]() |
witam!
na wstepie zaznaczam ze przeszukajem forum pod haslem: stronicowanie ale nie znalazlem odpowiedzi na moje question... potrzebuje zrobic sorticowanie textu wybrenego z mysql'a, tylko ze nie tak ze wybiera sie przez LIMIT tylko z mysql wybieramy 1 pole z tekstem, i w nim sa powiedzmy znaczniki <!page> i on stronicuje poprzez ten znaczinki, jak w tekscie beda powiedzmy 3 takie znaczniki to zrobie 3 strony... [php:1:2e0c9c7eef]<?php tekst tekst tekst tekst tekst tekst <!page> test1 test1 test1 test1 test1 test1 <!page> tekst2tekst2tekst2tekst2tekst2tekst2 ?>[/php:1:2e0c9c7eef] i powiedzmyze bedzie w bazie taki tekst to na 1 stronie bedzie: tekst tekst tekst tekst tekst tekst na 2-iej test1 test1 test1 test1 test1 test1 a na trzeciej: tekst2tekst2tekst2tekst2tekst2tekst2... pozdro |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Mozesz np. pobierać text od <!page> do <!page> poprzez same mysql
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 215 Pomógł: 1 Dołączył: 13.04.2003 Skąd: z ławki przed blokiem Ostrzeżenie: (0%) ![]() ![]() |
menic mozesz mi podac przykład takiego zapytania?
nie znam niestety mySQL dobrze, narazie podstawy SELECT DELETE i UPDATE... w podstawowych sprawach... no umiem jeszcze jako tako laczyc zapytania do 2 i wiecej tabel ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 25.04.2003 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
A przypadkiem nie najprościej :
[php:1:8b0eadb3ea]<?php $pages= explode('<!page>',$zmienna_z_artem); ?>[/php:1:8b0eadb3ea] i potem [php:1:8b0eadb3ea]<?php echo $pages[0]; // pierwsza strona echo $pages[1]; // druga strona echo $pages[2]; // trzecia strona ?>[/php:1:8b0eadb3ea] -------------------- r.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
@radziel: To jest bez sensu. Nie po to pracuje sie na SQLu, zeby używać tak prymitywnych sposobów jakie stosuje sie w przypadku płaskich baz danych. A co do twojego problemu. dokladnie tez nie wiem jak to powinno wyglądać, bo jeszcze nie zdązyłem tego użyć, ale zainteresuj sie funkcjami http://www.mysql.com/doc/en/String_functions.html
![]() -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Hmm może tak?
[sql:1:2ac4256812]SELECT REPLACE(SUBSTRING_INDEX(pole_z_trescia,'<!page>','".$numer_strony."'), SUBSTRING_INDEX(pole_z_trescia,'<!page>','".($numer_strony-1)."'),'') AS tresc FROM tabela WHERE costam='costam' [/sql:1:2ac4256812] gdzie $numer_strony musi zaczynać się od 1. Oczywiście zamień pole_z_trescia na nazwe swojego pola, gdzie przechopwujesz tą treść. W wyniku dostaniesz treść wybranej strony - potem usuń z niej znacznik <!page> bo chyba zostanie w treści (o ile sie nie myle). -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 215 Pomógł: 1 Dołączył: 13.04.2003 Skąd: z ławki przed blokiem Ostrzeżenie: (0%) ![]() ![]() |
Cytat @radziel: To jest bez sensu. Nie po to pracuje sie na SQLu, zeby używać tak prymitywnych sposobów jakie stosuje sie w przypadku płaskich baz danych. A co do twojego problemu. dokladnie tez nie wiem jak to powinno wyglądać, bo jeszcze nie zdązyłem tego użyć, ale zainteresuj sie funkcjami http://www.mysql.com/doc/en/String_functions.html
![]() a nie wiesz gdzie to znajde po polsku? bo angol u mnie tak sredniq |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A to co podałem nie działa?
Link do manuala MySQL (częsciowo) po polsku znajdziesz na dole tej strony. -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 215 Pomógł: 1 Dołączył: 13.04.2003 Skąd: z ławki przed blokiem Ostrzeżenie: (0%) ![]() ![]() |
Cytat A to co podałem nie działa?
Link do manuala MySQL (częsciowo) po polsku znajdziesz na dole tej strony. nie wiem cyz nie dziala jeszcze nie mialem okazi sprawdzic, ale ogolnie to nie lubie korzystac z czego czego za bardzo nie rozumiem... dla tego chcialbym wiedzec z czym to sie je... |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
OK, więc po kolei:
[sql:1:14a009f283]SUBSTRING_INDEX(pole_z_trescia,'<!page>','".$numer_strony."')[/sql:1:14a009f283] Zwróci ciąg od początku do kolejnego wystąpienia ciągu '<!page>' określonego przez $numer_strony - dlatego $numer_strony musi być większy lub równy 1. Niestety jeżeli liczba ta będzie większa od 1 (np. 5) to funkcja zwróci wszystko do piątego wystąpienia ciągu '<!page>'. Ponieważ nam chodzi jedynie o to co się znajduje pomiędzy 4 a 5 znacznikiem musimy użyć poniższej funckji: [sql:1:14a009f283]SUBSTRING_INDEX(pole_z_trescia,'<!page>','".($numer_strony-1)."')[/sql:1:14a009f283] Zwróci ciąg od początku tekstu do jego n-1 wystąpienia w tekście - gdzie n to numer aktualnej strony. Jeżeli numer strony jest równy 1, to ta funkcja nic nie zwróci. Wrzucamy to wszystko do REPLACE(...) i usuwamy z pierwszego ciągu niepotrzebne nam strony poprzez drugą funkcję SUBSTRING_INDEX i otrzzymujemy tylko żądaną stronę. Może teraz coś Ci się rozjaśni: [sql:1:14a009f283]SELECT @biezaca_strona:=SUBSTRING_INDEX(pole_z_trescia,'<!page>','".$numer_strony."'), @poprzednia_strona:=SUBSTRING_INDEX(pole_z_trescia,'<!page>','".($numer_strony-1)."'), REPLACE(@biezaca_strona,@poprzednia_strona,'') AS tresc FROM tabela WHERE costam='costam' [/sql:1:14a009f283] ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:46 |