Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: uciete ostatnie slowo
Forum PHP.pl > Forum > PHP
a79rtur
mam skrypt ktory przycina tekst do rozmiarow pola w bazie ,np do 50 znaków, czasem sie zdarzy ze zostanie mi pół slowa uciete na koncu, jak usunac tylko ten ostatni kawalek slowa ?
SongoQ
Przycinasz tekst do 50 znakow a nastepnie wywalasz pozostaly tekst do wystapienia spacji, oczywiscie musisz rozpoznac czy ostatni wyraz jest przyciety czy nie.

2 rozwiazanie to tablica.
DeyV
Kiedyś na forum, ktoś napisał tak:

  1. SELECT LEFT( tresc, IF(LENGTH(tresc)<500, LENGTH(tresc), LOCATE(' ', tresc, 500))) AS wpis
  2. FROM news ;



Kod pobiera maxymalnie 500 znaków z pola tresc. Jeżeli w polu znaków jest więcej, przycina długość do pierwszej spacji wystepującej po 500-tnym znaku.
Trzeba uważać z np. LOCATE(co, gdzie, odkad) - jesli LENGTH(gdzie)<odkad dostaniemy pusty string. I właśnie zlokalizowanie tego zajęło mi większość czasu. Jakoś w manualu chyba zapomnieli o tym napisać, albo ja przeoczyłem.

A teraz pokornie czekam na info, że mozna to zrobić prościej )
P.S. Do zapytania nalezaloby dodac
  1. LENGTH(tresc) AS znakow

i następnie w php sprawdzić:

  1. <?php
  2. If($znakow > 500) { $wpis .= '<a href>wiecej</a>' } 
  3. ?>


(gdzie 500 to ilość znaków, które chcemy wyciągnąć)
bartyk
Ale to jest transfer MySQL -> php, a a79rtur-owi chodziło chyba o transfer w drugą strone.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.