21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
FantomX1
Profil
Ako môľem vybra» z databázy len určitý počet znakov? Napríklad keď mám v databáze určitý článok, ale pri zobrazovaní na hlavnej stránke chcem aby sa zobrazil nadpis a len určitá krátka čas» textu.
Aby som mohol na hlavnej stránke takto zobrazova» viacero odkazov na články, a odkazy by boli teda vo forme začiatku článku. Viem ľe by som mohol vybera» z databázy celé články a vypísa» len čas» pomocou funkcie substr(), ale nedalo by sa to spravi» nejak pomocou samotnej MySQL napríklad pomocou regulárnych výrazov, ľe by vybralo z databázy len určitú veµkos» článku?

Ďakujem.
ash
Profil
napríklad prvých 50 znakov:

SELECT LEFT(clanok, 50) AS zaciatok_clanku FROM tabulka

alebo keď to chceą deli» medzi slovami:

funkcia LOCATE(' ',clanok,50) nájde prvú pozíciu medzery po 50. znaku

potom:

SELECT LEFT(clanok, LOCATE(' ',clanok,50)) AS zaciatok_clanku FROM tabulka
FantomX1
Profil
Diky ASH, velmi si mi pomohol.
Secret
Profil
ja mam ten isty problem ale potrebujem k tomu
Secret
Profil
Ja mam ten isty problem...navyse potrebujem vypisat nadpis clanku a neviem akym sposobom spojit tieto 2 poziadavky do jednej
FantomX1
Profil


SELECT nadpis, CASE WHEN LOCATE(' ',clanok,50)>=50 THEN LEFT(clanok,LOCATE(' ',clanok,50)) ELSE clanok END AS clanok FROM clanky



Kusok som ti pozmenil poziadavku, pretoze kedysi ked som potreboval vediet tuto poziadavku, stretol som sa z jednou chybou a to tou, ze ak bol obsah clanku nahodou kratsi ako 50 znakov, tak mi nevybralo ani cast clanku.

Tak a teraz vysvetlenie, funkcia LEFT vyberie z bunky stlpca urcity pocet znakov vzhladom odlava, to znaci aj nazov funkcie LEFT, prvy parameter urcuje stlpec z ktoreho vyberat a druhy po kolki znak, ak ale nechces aby ti to odseklo v polke slova je dobre si najst prvu poziciu medzery pomocou funkcie LOCATE(). Prvy parameter funkcie je hladany retazec(znak), druhy parameter v ktorom stlpci a treti po poradi ktorom znaku zacat hladat znak alebo retazec, ked to vlozis do funkcie LEFT tak ti vyberie text az po koniec slova po 50tom znaku, takze to budes mat nepreseknute. Ak by si chcel cele vety, mozno by sa hodila bodka a medzera. Pozor ale na jednu vec, ak by si tam nemal ziadne medzery, nevybralo by tu nic. Pretoze by nenaslo poziciu znaku medzery a vratilo by 0, takze by sa vyberali znaky odlava retazca, cize od zaciatku, az po nulty znak. Preto som ti tam dal tu podmienku ze ak nie je medzere po 50 znaku, tak sa vyberie cely clanok. Malo by to ist, ale neskusal som to, ak by si mal s tym akekolvek problemy, staci ma kontaktovat na ICQ 191031361 alebo ak nebudem online tak napisat na mail cashing@zoznam.sk
Toto téma je uzamčeno. Odpověď nelze zaslat.

0