Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysq] Grupowanie danych z bazy po ilości znaków
Forum PHP.pl > Forum > Przedszkole
in5ane
Elo.. mam problem, otóż jak zrobić coś takiego, że powiedzmy mam artykuł i ma 1576 znaków i chcę zrobić aby mi dzieliło po na strony, a mianowicie ma być do 500 znaków na stronę, z tego przykładowego 1576 powinny być 4 strony. Prosiłbym o jakiś przykład, nakierowanie..
enigma
może funkcja
substr
in5ane
Ona mi tylko skróci do iluś znaków, ale co zrobić z kolejną stroną? I jak zrobić stronnicowanie?
enigma
hmm, nie wiem czy to jest optymalne rozwiązanie, ale można by tak
załóżmy ze masz takie linki:
Kod
http://localhost/skrypt.php?strona=0


a w pliku skrypt.php
  1. <?php
  2. $znaki_na_strone = 10;
  3. $tekst = 'Ala ma kota. Platforma wygrała wybory. Idzie zima';
  4. $start = $znaki_na_strone * $_GET['strona'];
  5.  
  6. echo substr($tekst, $start, $znaki_na_strone);
  7. $ile_linków = (strlen($tekst) - strlen($tekst)%$znaki_na_strone)/$znaki_na_strone;
  8. if($ile_linków * $znaki_na_strone < strlen($tekst))
  9. $ile_linków = $ile_linków +1;
  10. for($i=0; $i<$ile_linków; $i++)
  11. echo ' <a href="lol.php?strona='.$i.'">'.$i.'</a>';
  12. ?>


mam nadzieje że rozumiesz kod
Piotrwusek
może użyjesz stronicowania @nospor

LINK

Jego stronicowanie działa (sam sprawdzałem)

Pozdrawiam

Piotrwusek

PS. Przekształć WHERE jeśli chcesz po ilości znaków
in5ane
Zrobiłem to w ten sposób i lipa..

  1. <?php
  2. $znaki_na_strone = 1500;
  3. $start = $znaki_na_strone * $_POST['kat'];
  4. $tekst = $row['tresc'];
  5.  
  6. echo substr($tekst, $start, $znaki_na_strone);
  7. $ile_linków = (strlen($tekst) - strlen($tekst)%$znaki_na_strone)/$znaki_na_strone;
  8. if($ile_linków * $znaki_na_strone < strlen($tekst))
  9. $ile_linków = $ile_linków +1;
  10. for($i=0; $i<$ile_linków; $i++) {
  11. echo ' <br /><a href="article_id.php?id='.$id.'?strona='.$i.'">'.$i.'</a>';
  12. }
  13. ?>


Wyświetlają się strony:
0
1
2
3

Gdy kliknę na którąś to jest to samo co na pierwszej. I jeżeli by to już działało, to żeby liczyło od 1 a nie od 0.



Z góry dziękuję.
Cienki1980
Wartość strony przesyłasz za pomocą GET a odbierasz z POST.
Żeby nie było od 0 to zmień pętlę for tak żeby zaczynała się od 1.
nospor
Skoro Piotrwusek podal moją klase, to ja podam kod pod nią (moze sie przyda)
  1. <?php
  2. require_once('Pager.class.php');
  3. //tekst do stronicowania
  4. $tekst = 'abcdefghij';
  5. //ile znakow na stronie
  6. $znakowNaStronie = 2;
  7. //ilosc "kawalkow"
  8. $recordsCount = ceil(strlen($tekst)/$znakowNaStronie);
  9.  
  10. $pager = new Pager('idPagera');
  11. $pager->SetTotalRecords($recordsCount);
  12. //na kazdej stronie po jednym kawalku
  13. $pager->SetRecordsPerPage(1);
  14. $pager->Make(true);
  15. $pag = $pager->Render();
  16. $start = $pager->GetIndexRecordStart();
  17.  
  18. echo substr($tekst,$start*$znakowNaStronie, $znakowNaStronie);
  19. echo '<br />'.$pag;
  20. ?>

http://nospor.pl/pager.html
nospor
mialem problem z dzialem download. Juz dziala

@Piotrwusek każda wersja jest dla php5. Kazda wersja oprocz 2.5 jest tez dla php4
Wystarczy tylko odpowiednia paczke sciagnac smile.gif
in5ane
  1. <?php
  2. require_once('Pager.class.php');
  3. //tekst do stronicowania
  4. $tekst = $row['tresc'];
  5. //ile znakow na stronie
  6. $znakowNaStronie = 1000;
  7. //ilosc "kawalkow"
  8. $recordsCount = ceil(strlen($tekst)/$znakowNaStronie);
  9.  
  10. new Pager('idPagera','article_id.php?id=36')
  11. $pager->SetTotalRecords($recordsCount);
  12. //na kazdej stronie po jednym kawalku
  13. $pager->SetRecordsPerPage(1);
  14. $pager->render(true);
  15. $pag = $pager->Render();
  16. $start = $pager->GetIndexRecordStart();
  17.  
  18. echo substr($tekst,$start*$znakowNaStronie, $znakowNaStronie);
  19. echo '<br />'.$pag;
  20. ?>
nospor
  1. <?php
  2. $pager = new Pager('idPagera','article_id.php?id=36');
  3. ?>
Jak sie nie poda dokladnie to nie pomysli jeden z drugim....

pozatym nie:
  1. <?php
  2. $pager->render(true);
  3. $pag = $pager->Render();
  4. ?>

a:
  1. <?php
  2. $pag = $pager->Render();
  3. ?>

Po co dwa razy? Kopiuj z glowa tongue.gif
in5ane
Czy ktoś wie jak zastosować w tej klasie aby mi nie psuło tagów HTML.

No bo jak coś robię w wysywigu i zapisze i później jak wyświetlam no to klasa psuje kod i albo sie krzywo wyświetla, albo to mi obrazka nie wyświetli, albo tu źle tekst sformatowany itd.
nosport mówił, że było coś takiego na forum ale ja nie mogę znaleźć.

Proszę o pomoc smile.gif

Znalazłem taki topic: TUTAJ ale tam kolega też nie dostał odpowiedzi.

Pomoże ktoś w końcu? smile.gif

No proszę tylko o pomoc, nie o cały kod.
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.