Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PSP][MySQL] Podział długiego tekstu na strony i spis treści
ITI
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.06.2002
Skąd: Z US - Układ Słoneczny :)

Ostrzeżenie: (0%)
-----


Mam problem. W bazie danych mam zapisane np. w polu TRESC baaaaardzo długi tekst (jakis artykul czy np. ksiazka) i potrzebowałbym go wyciągnąć z bazy i jednoczesnie podzielic na strony wg znacznikow w tekscie np. <------ KONIEC STRONY ------>.
Czyli tekst z bazy danych:

Strona 1
<------ KONIEC STRONY ------>
Strona 2
<------ KONIEC STRONY ------>

Chcialbym aby potem to bylo widoczne tak, ze na stronie 1 jest tylko tekst "strona1", na stronie 2 tekst "strona 2" itd...
Ale jest jeszcze jedno, dobrze byloby gdyby za kazdym przejsciem na odpowiednia strone nie pobierala sie cala tresc artykulu (lub ksiazki) z bazy danych, bo szkoda niepotrzebnie meczyc serwer (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Czy w ogole da sie cos takiego zrobic?? czy szkoda zawracac sobie tym glowe?

Do tego jeszcze by mi sie przydalo zrobic spis tresci, ale z tym to sobie poradze, bo moge zrobic jakis statyczny, ktory by mial odnosniki do odpowiednich podstron.

A moze ktos jeszcze ma inny pomysl na rozwiazanie tego problemu??
Kolega kiedys poradzil mi, aby sprobowac osobne strony dodawac do bazy jako osobne wpisy i wtedy np. wpis glowny traktowany bylby jak kategoria w ktorej znajdowalby sie spis tresci, a do niej dopisywaloby sie poszczegolne wpisy, ktore traktowane bylyby jako osobne strony.

Ten post edytował ITI 28.01.2008, 14:52:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
b_chmura
post
Post #2





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


jeśli chodzi o pierwsze rozwiązanie:
  1. <?php
  2. //przykładowy panel do poruszania się między stronami
  3. function Ppanel($cnt, $CntStr, $Istrona, $Pstrona, $Astrona, $Nstrona, $ALLstrona)
  4. {
  5. echo 'Aktualnie jestes na '.$Astrona.' stronie z '.$CntStr.' wszystkich.<br />';
  6.  
  7. if($Pstrona)
  8. {
  9. echo '<a href="?page='.$Pstrona.'">Poprzednia</a> | ';
  10. }
  11. else
  12. {
  13. echo 'Poprzednia | ';
  14. }
  15. $i = 1;
  16. foreach($ALLstrona as $nr)
  17. {
  18. if($i == $Astrona)
  19. {
  20. echo $nr.', ';
  21. }
  22. else
  23. {
  24. echo '<a href="?page='.$nr.'">'.$nr.'</a>, ';
  25. }
  26. $i++;
  27. }
  28.  
  29. if($Nstrona)
  30. {
  31. echo ' | <a href="?page='.$Nstrona.'">Następna</a>';
  32. }
  33. else
  34. {
  35. echo ' | Następna';
  36. }
  37. }
  38. //paginator
  39. function paginator($cnt, $Astrona = 1, $Istrona = 5)
  40. {
  41. if(!empty($cnt) or !empty($Istrona)) $CntStr = ceil($cnt/$Istrona);
  42. if($Astrona <= 0) $Astrona = 1;
  43. if($Astrona > $CntStr) $Astrona = $CntStr;
  44.  
  45. $Pstrona  = (($Astrona-1) >= 1)? ($Astrona-1): FALSE;
  46. $Nstrona  = (($Astrona+1) <= $CntStr)? ($Astrona+1): FALSE;
  47. $ALLstrona = range(1, $CntStr);
  48. $start  = $Istrona*$Astrona-$Istrona;
  49.  
  50. if($Istrona > ($cnt-$start)) $Istrona = ($cnt-$start);
  51.  
  52. $out['cnt']  = $cnt;
  53. $out['CntStr'] = $CntStr;
  54. $out['start']  = $start;
  55. $out['Istrona']  = $Istrona;
  56. $out['Pstrona']  = $Pstrona;
  57. $out['Astrona']  = $Astrona;
  58. $out['Nstrona']  = $Nstrona;
  59. $out['ALLstrona'] = $ALLstrona;
  60.  
  61. return $out;
  62. }
  63.  
  64.  
  65. $zapytanie = mysql_query();
  66. $dane = mysql_feth_array($zapytanie);
  67. $strony = explode('<------ KONIEC STRONY ------>', $dane['tresc']);
  68. $cnt = count($strony);
  69. $po_ile = 1;
  70. $page = $_GET['page'];
  71. $out = paginator($cnt, $page, $po_ile);
  72.  
  73. echo $strony[$out['Astrona']];
  74.  
  75. Ppanel($cnt, $out['CntStr'], $po_ile, $out['Pstrona'], $out['Astrona'], $out['Nstrona'], $out['ALLstrona']);
  76. ?>


coś w ten deseń
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 16:04