Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysq] Grupowanie danych z bazy po ilości znaków
in5ane
post 28.10.2007, 19:45:28
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


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..


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
enigma
post 28.10.2007, 19:56:03
Post #2





Grupa: Zarejestrowani
Postów: 163
Pomógł: 0
Dołączył: 10.09.2006

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


może funkcja
substr
Go to the top of the page
+Quote Post
in5ane
post 28.10.2007, 20:07:23
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Ona mi tylko skróci do iluś znaków, ale co zrobić z kolejną stroną? I jak zrobić stronnicowanie?


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
enigma
post 28.10.2007, 20:26:29
Post #4





Grupa: Zarejestrowani
Postów: 163
Pomógł: 0
Dołączył: 10.09.2006

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


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
Go to the top of the page
+Quote Post
Piotrwusek
post 28.10.2007, 20:31:41
Post #5





Grupa: Zarejestrowani
Postów: 399
Pomógł: 7
Dołączył: 11.06.2007
Skąd: Poznan

Ostrzeżenie: (20%)
X----


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
Go to the top of the page
+Quote Post
in5ane
post 29.10.2007, 08:20:19
Post #6





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


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ę.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
Cienki1980
post 29.10.2007, 08:31:00
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


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.


--------------------
404
Go to the top of the page
+Quote Post
nospor
post 29.10.2007, 08:36:34
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nospor
post 29.10.2007, 15:48:55
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
in5ane
post 29.10.2007, 16:01:26
Post #10





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


  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. ?>


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
nospor
post 29.10.2007, 16:06:22
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
in5ane
post 31.10.2007, 14:56:42
Post #12





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


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.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 19:06