Autor Zpráva
microfox
Profil *
Zdravim, mam takovýto kód a takto vypisuji z DB
<?php
require "db.php"; // pripojeni k databazi

$clanek_html='<table id="slideshow_clanky" border="1">';



$vycuc_tabulky=mysql_query("select * from Tabulka ORDER BY id DESC LIMIT 1");

while($data=mysql_fetch_assoc($vycuc_tabulky))
{
$clanek_html.='<tr align="center">
<td  class="vyska_nadpisu"><div class="nadpis_clanku_slideshow"><b>'.$data['nadpis'].'</b></div></td>

</tr><tr><td class="text_clanku_slideshow">'.$data['clanek'].'</td>  </tr>';
}
$clanek_html.='</table>';
?>
<table>
<tr><td><?php echo $clanek_html; ?></td></tr>
</table>


potreboval bych na to napasovat neco takoveho a nevim si s tim moc rady...

if(strlen($text) > 200) echo substr($text, 0, 200) . "...";
else echo $text;

Vedel by nekdo?
microfox
Profil *
potrebuju mimochodem zkratit tento clanek respektive tuto promennou... '.$data['clanek'].'
panther
Profil
microfox:
</tr><tr><td class="text_clanku_slideshow">'. (strlen($data['clanek']) > 200 ? substr($data['clanek'], 0, 200) . '&hellip;' : $data['clanek']) .'</td>  </tr>';
microfox
Profil *
hm to je divny... nadpis mi zmizel uplne a na pocet znaku to nereaguje...ano skonci ten text driv ale kdyz dam 50 treba tak je to porad stejny...
microfox
Profil *
tak bud jsem slepej a nevidim tam chybu a nebo fakt nevim... :(
Tori
Profil
microfox:
Osekávat na x znaků to můžete už v dotaze, pokud nepotřebujete zároveň i celý článek (mysql funkce SUBSTR). Pokud používáte utf8, tak bych místo substr použila spíš mb_substr nebo iconv_substr (nepřeseknou v půlce vícebytový znak, dtto na zjištění délky mb_/iconv_strlen).
Eventuelně by to šlo celé hodit do dotazu, ale vyzkoušejte, jestli to nebude o moc pomalejší (nemám teď po ruce dostatečně dlouhé texty v DB).
SELECT CONCAT(SUBSTR(`clanek`, 1, 200), IF(LENGTH(`clanek`) > 200, '&hellip;', ''))
microfox
Profil *
O tom jsem také přemýšlel, že to hodím takhle do SQL, ale ani to nefunguje...Právě jsem to vyzkoušel... :-( zatím vůbec netuším co s tím provedu... ale snad se na něco přijde... možná ;-)
microfox
Profil *
Teď to mám dokonce takto:
<?php
require "db.php"; // pripojeni k databazi

$clanek_html='<table id="slideshow_clanky" border="1">';
$vycuc_tabulky=mysql_query("select concat( substring_index( `clanek` , ' ', 100 ) , '...' ) from Tabulka ORDER BY id DESC LIMIT 1 ");

while($data=mysql_fetch_assoc($vycuc_tabulky))
{
$clanek_html.='<tr align="center">
 
<td  class="vyska_nadpisu"><div class="nadpis_clanku_slideshow"><b>'.$data['nadpis'].'</b></div></td>

</tr><tr><td class="text_clanku_slideshow">'.$data['clanek'].'</td>  </tr>';   
}
$clanek_html.='</table>';
?>
<table>
<tr><td><?php echo $clanek_html; ?></td></tr>
</table>


Prikaz v SQL v DB funguje...ovsem kdyz to dam takhle tak to nevypise ani tuk...
microfox
Profil *
panther: Uz to jde... musel jsem tam nastavit vic jak 200. S 200 se mi to vzdycky zkur*ilo a kdyz je tam 900 tak to jde...
microfox
Profil *
Je tam ale dobrá chyba... když je text jejich vyřazením v semifin&aacut

ukončí to prostě po 1800 slovech dejme tomu a zrovna je tam á nebo é a takhle to zprzní... šlo by tomu ňák zamezit?
microfox
Profil *
je to prej neco s kodovanim jsem se ted docetl ale ja pouzivam windows-1250
Je mozne to nak dat dohromady? Vi nekdo?
Tori
Profil
microfox:
Prikaz v SQL v DB funguje...ovsem kdyz to dam takhle tak to nevypise ani tuk...
Musíte dát tomu nově vytvořenému sloupci nějaký alias, jinak se bude jmenovat "concat(..."
select `nadpis`, concat( substring_index( `clanek` , ' ', 100 ) , '...' )  AS 'clanek' from Tabulka ORDER BY id DESC LIMIT 1
microfox
Profil *
Tori: Moc díky, teď už to funguje i takto ;-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0