Publikováno v sekci MYSQL v Pondělí 14.5.2007 - 22:19
Pokud potřebujeme z článku vypsat určitý počet znaků, většina lidí si jednodušše uřízne požadovaný počet znaků pomocí funkce substr()To bývá kolikrát neštastné už tím, že nám může rozpůlit slovo a tento efekt nevypadá pěkně. Proto si můžeme napsat vlastní funkci Perex(), která nám chytře vrátí požadovanou délku znaků.
<?php function Perex($text, $length = 60, $ending = "...") { if (strlen($text) <= $length) { $text = $text; } else { $text = substr($text, 0, $length); $pos = strrpos($text, " "); $text = substr($text, 0, $pos); $text .= $ending; } return $text; } ?>
Ale i tento způsob ma nevýhodu. Musíme z databáze získat celý text, který teprve poté zkrátíme. A proto pokud nechceme konkrétní počet znaků, a spokojíme se s konkrétním počtem slov, můžeme perex získat rovnou z datábáze následujícím dotazem
SELECT SUBSTRING_INDEX( perex, ' ', 3 ) AS perex FROM clanky