Autor Zpráva
zeal
Profil
Ahojte snazim sa vytiahnut z db urcitu cast textu sposobom
  $this->template->set_view = $this->model->getSettings()->where(array('select'=> 'news', 'public' => 1,SUBSTRING_INDEX('content','',40) ))->count('*');
Ladicka mi hlasi Call to undefined function SUBSTRING_INDEX()
neviete kde mozem mat chybu ? bez SUBSTRING_INDEX('content','',40) mi to funguje v poriadku avsak je chcem vyberat len cast celeho textu
Keeehi
Profil
A takto?
array('select'=> 'news', 'public' => 1, 'SUBSTRING_INDEX(\'content\',\'\',40)')

Na otestování použít dibi::query místo dibi::test.
zeal
Profil
Keeehi:
Tak mi to uz sice chybu nevyhadzuje ale vypisuje to stale cely text z tabulky
Keeehi
Profil
zeal:
Nějak jsem u toho nepřemýšlel, ten substring_index přece není podmínka. Tudíž buď upravit select v modelu nebo to ořezat až v šabloně.

Jinak úplně stačí funkce SUBSTR.
zeal
Profil
Keeehi:
Nieje to podmienka? Predsa 40 a \'\' neznamena ze zoberie z db 40 slov oddelenych medzerou ?


mam na mysli 40 medzier ako oddelovacou medzi slovami
Keeehi
Profil
zeal:
Nieje to podmienka?
Ne není. Za where není napsáno jak se mají data zobrazit nebo naformátovat. Za where má být výraz který je true/false a podle toho se celý čádek mezi výsledky buď přidá a nebo ne. To vaše se týká "forátování" a není to podmínka, takže to má patřit za SELECT.

40 slov oddelenych medzerou ?
V prvním příspěvku ale mezeru jako oddělovač nemáte, máte tam prázdný řetězec. Nevím, jestli by to vůbec fungovalo, ale pokud ano, zobrazilo by to nejspíše 40 písmen a ne slov. Pokud chcete 40 slov, pak substring_index je správně, pokud tam nezapomenete tu mezeru dodat.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0