Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie pierwszych 30 wyrazów
czachor
post
Post #1





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

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


Witam!
Chcę pobrać z pola pierwszych 30 wyrazów i dodać na końcu kropki... W MySQL'u robiłem tak:
  1. SELECT CONCAT(SUBSTRING_INDEX(pole, ' ', 30), '...') AS dane FROM...

Przerzuciłem manual postgresa, pogooglowałem, próbowałem coś samemu stworzyć... ale jakoś nic sensownego mi nie wychodzi... Najbliższe rozwiązanie to użycie SUBSTR, ale to może mi np. pobrać pierwszych 300 znaków, nie patrząc, czy zakończy na spacji (wyrazie)...
Mogę to oczywiście zrobić w php, ale może jest to możliwe na poziomie bazy danych...

Z góry dzięki za wszelką pomoc!

PS. Prawdopodobnie da się to zrobić przy pomocy odpowiedniego wyrażenia regularnego w SUBSTR('ble ble ble itd', 'tu_wyrazenie'), ale specjalnie też mi nie wychodzi (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

----UPDATE
Mam zapytanie, ale dziwnie działające...
  1. SELECT substr(pole, 0, strpos(pole, split_part(pole, ' ', 5))) || '...' AS dane

3 parametr w split_part() to kolejna spacja, do której ciąg jest obcinany...

I teraz... Różnie to działa (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) Czasami mi obcina dobrze (czyli 4 wyrazy + '...'), a czasami dostaję nie wiadomo dlaczego tylko pierwszych kilka liter (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) Wie ktoś może, o co tu do cięzkiej .... chodzi?? (IMG:http://forum.php.pl/style_emoticons/default/axesmiley.png) Czy ja czegoś nie rozumiem, czy gdzieś indziej jest coś nie tak...
Powinno IMHO być wszystko tak jak trzeba, przesiedziałem kupę czasu z manualem/googlami, żeby sprawdzić, czy może robię coś nie tak... Znalazłem tylko coś o bugu(?) w split_part, ale nie rozumiem tam ostatniego postu (wyjaśnienia?)...

Dzięki za każde wieści na ten temat...
pozdr.

Ten post edytował czachor 28.02.2005, 23:56:14
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.06.2026 - 17:34