Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Skracanie newsow
Forum PHP.pl > Forum > Przedszkole
pajdakks
Witam serdecznie,
oto kod:
  1. <?
  2. include('db.php');
  3. if(!isset($_GET['ok'])) {?>
  4. <?php
  5. $zapytanie15 = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 3");
  6. while($data15 = mysql_fetch_array($zapytanie15) ) {
  7. ?>
  8. <table width="370" border="0" cellpadding="0" cellspacing="0">
  9. <tr>
  10. <td height="26" colspan="3"><img src="images/Untitled-1_01.gif" width="370" height="28"></td>
  11. </tr>
  12. <tr>
  13. <td width="19" height="227" background="images/Untitled-1_02.gif" rowspan="3"></td>
  14. <td width="330" bgcolor="#116899"><u><font face="Comic Sans MS"size="5" color="#FFFFFF">
  15.  
  16.  
  17.  
  18.  
  19. <?php
  20.  
  21.  
  22. echo $data15['tytul'];
  23. ?>
  24.  
  25.  
  26.  
  27. </font></u>
  28. </td>
  29. <td width="21" background="images/Untitled-1_04.gif" rowspan="3"></td>
  30. </tr>
  31. <tr>
  32. <td width="330" bgcolor="#116899"><font face="Comic Sans MS" color="#FFFFFF">
  33.  
  34.  
  35.  
  36.  
  37.  
  38. <?php
  39. if( strlen( $data15['tresc'] ) > 50 )
  40. {
  41.  
  42. echo substr( $data15['tresc'] , 0 , 50 ) . '...';
  43. echo "<a href='wyswietl.php?czytaj=1'>Czytaj wiecej</a>";
  44.  
  45. }
  46. else
  47. {
  48.  
  49. echo $data15['tresc'] ;
  50. }
  51.  
  52.  
  53.  
  54. ?>
  55. <?php
  56. if($_GET['czytaj']=="1"){
  57.  
  58.  
  59. }



Mój problem polega na tym, że chce skrócić wyświetlaną treść i to mi się udaje, pozniej tworzę link do czytaj więcej i w tym linku daje URL:=wyswietl.php?czytaj=1 po czym później tworzę if którego dokleję po ty by wyświetlić resztę danego newsa, teraz tylko pytanie co mam dać w if''e żeby wyświetliło mi poprawnie resztę newsa'a a nie całość od nowa bo tak mogę zrobić poprzez dodanie[php] $data15['tresc'];php] ale wtedy wyświetla mi całego news'a wraz z tym co było skrócone proszę o jaką pomoc. Pozdrawiam.
marcwars
Wykorzystaj funkcję strlen, tylko w pierwszym parametrze dajesz 51, czyli
echo substr( $data15['tresc'] , 51 , ) - chyba tak, ewentualnie odpowiednie zapytanie sql np:
"SELECT *, SUBSTRING(tekst, 51, ) AS `ciag_dalszy` FROM news;"
Jak nie będzie wychodziło pokombinuj z 2 parametrem.
Giluś
Ja bym to zrobił tak:

  1. function usun($tresc) {
  2. $ile = 100; // Ile znaków ma sie wyświetlić
  3. $licz = strlen($tresc);
  4. if ($licz>=$ile) {
  5. $tnij = substr($tresc,0,$ile);
  6. $txt = $tnij."...";
  7. } else {$txt = $tresc;}
  8. return $txt;
  9. }
  10.  
  11. $tresc = $data15['tresc'] ;
  12.  
  13. echo usun($tresc);


Funkcja usuwa tekst po 100 znakach, dodając " ... " (trzy kropeczki)

IceManSpy
Cytat(Giluś @ 14.01.2012, 16:44:04 ) *
Ja bym to zrobił tak:

  1. function usun($tresc) {
  2. $ile = 100; // Ile znaków ma sie wyświetlić
  3. $licz = strlen($tresc);
  4. if ($licz>=$ile) {
  5. $tnij = substr($tresc,0,$ile);
  6. $txt = $tnij."...";
  7. } else {$txt = $tresc;}
  8. return $txt;
  9. }
  10.  
  11. $tresc = $data15['tresc'] ;
  12.  
  13. echo usun($tresc);


Funkcja usuwa tekst po 100 znakach, dodając " ... " (trzy kropeczki)



Jeśli już tak, to lepiej ją tak zapisać:
  1. function usun($tresc,$ile = 100) {
  2. $licz = strlen($tresc);
  3. if ($licz>=$ile) {
  4. $tnij = substr($tresc,0,$ile);
  5. $txt = $tnij."...";
  6. } else {$txt = $tresc;}
  7. return $txt;
  8. }
  9.  
  10. $tresc = $data15['tresc'] ;
  11.  
  12. echo usun($tresc);

Wtedy jako drugi parametr zapisuje ile znaków ma się wyświetlić.
pajdakks
No tak tylko teraz pytanie jak ma wyglądasz URL który pokaże nam resztę newsa ?
IceManSpy
Twój pierwszy kod, linijka 43
pajdakks
Mój kod wygląda tak:
  1.  
  2.  
  3.  
  4.  
  5. <?
  6. include('db.php');
  7. if(!isset($_GET['ok'])) {?>
  8. <?php
  9. $zapytanie15 = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 3");
  10. while($data15 = mysql_fetch_array($zapytanie15) ) {
  11. ?>
  12. <table width="370" border="0" cellpadding="0" cellspacing="0">
  13. <tr>
  14. <td height="26" colspan="3"><img src="images/Untitled-1_01.gif" width="370" height="28"></td>
  15. </tr>
  16. <tr>
  17. <td width="19" height="227" background="images/Untitled-1_02.gif" rowspan="3"></td>
  18. <td width="330" bgcolor="#116899"><u><font face="Comic Sans MS"size="5" color="#FFFFFF">
  19.  
  20.  
  21.  
  22.  
  23. <?php
  24.  
  25.  
  26. echo $data15['tytul'];
  27. ?>
  28.  
  29.  
  30.  
  31. </font></u>
  32. </td>
  33. <td width="21" background="images/Untitled-1_04.gif" rowspan="3"></td>
  34. </tr>
  35. <tr>
  36. <td width="330" bgcolor="#116899"><font face="Comic Sans MS" color="#FFFFFF">
  37.  
  38.  
  39.  
  40.  
  41.  
  42. <?php
  43. if( strlen( $data15['tresc'] ) > 50 )
  44. {
  45.  
  46. echo substr( $data15['tresc'] , 0 , 50 ) . '...';
  47. echo "<a href='wyswietl.php?czytaj=1'>Czytaj wiecej</a>";
  48.  
  49. }
  50. else
  51. {
  52.  
  53. echo $data15['tresc'] ;
  54. }
  55.  
  56.  
  57.  
  58. ?>
  59. <?php
  60. if($_GET['czytaj']=="1"){
  61. function usun($tresc) {
  62. $ile = 100; // Ile znaków ma sie wyświetlić
  63. $licz = strlen($tresc);
  64. if ($licz>=$ile) {
  65. $tnij = substr($tresc,0,$ile);
  66. $txt = $tnij."...";
  67. } else {$txt = $tresc;}
  68. return $txt;
  69. }
  70.  
  71. $tresc = $data15['tresc'] ;
  72.  
  73. echo usun($tresc);
  74.  
  75.  
  76. }
  77. ?>

I tego skutkiem jest iż, gdy klikam czytaj więcej rozwija mi się cały news + to co było wcześniej(tekst skrócony o 100). A ja chcę, żeby wyświetlało mi całość bez tego skróconego. Jakieś pomysły ?
IceManSpy
W linijce 46,53 i 73 wyświetlasz różne teksty. Po komentuj linijki i zobacz gdzie jest problem.
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.