Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] stronicowanie z kategoriami - blad, Zamiast tylu podstron ile w kategori, to wyswietla wszystko
mate
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 27.06.2007

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


Witam!
Mam prosty skrypcik z artykulami, ale z podzialem na kategorie. Ograniczylem ilosc wyswietlanych artow do 25 na strone, ale artow sie zrobilo w niektorych kategoriach tak duzo, ze klikanie caly czas 'dalej' moze sie zrobic nudne i chcialem dodac stronicowanie, zeby byly widocznie numerki na dole. Skorzystalem z FAQ (http://forum.webhelp.pl/faqforum.php?f=1#36) i pomieszalem oba kody, zeby jako tako dzialalo. I juz niby wszystko dziala, jest stronicowanie, jednak zamiast odpowiednia ilosc podstron na kategorie w danej kategorii to wyswietlaja sie wszystkie podstrony z cala iloscia artykulow na kazdej kategorii.
Na poczatku skryptu mam taki kod:
  1. <?php
  2. $lastpage = false;
  3.  
  4.  if ($pagenum == 0) {
  5. $startrow = 0;
  6.  } else {
  7. $startrow = 25 * $pagenum;
  8.  }
  9.  
  10.  if ($numrows < $startrow + 25) {
  11. $endrow = $numrows;
  12. $lastpage = true;
  13.  }
  14.  
  15.  if ($letter) {
  16.  
  17. $sql = "select tipid, title, date, rating from tips where title like '$letter%' and status = 'L' order by title limit $startrow,25";
  18. $pagetitle = "Tips starting in the letter '$letter'";
  19.  
  20.  } else {
  21.  
  22. $sql = "select * from categories where catid = $catid";
  23. $result = mysql_query($sql ,$db);
  24. $row = mysql_fetch_row($result);
  25. $pagetitle = $row[1];
  26.  
  27. $sql = "select tipid, title, date, rating from tips where catid = $catid and status
     = 'L' order by title limit $startrow,25"
    ;
  28.  
  29. }
  30. ?>


A pozniej na dole, w miejscu wyswietlania tych numerow:
  1. <?php
  2. //ile na strone
  3. $ile = 25;
  4. $numrows = mysql_num_rows(mysql_query("select tipid, title, date, rating from tips where title like '$letter%' and status = 'L' order by title"));
  5. if(!$p) $p = 0;
  6. // zabezpieczenie przed nienumerycznymi wartosciami
  7. $p = (int)$p; 
  8. $ile = (int)$ile; 
  9. $query = mysql_query("select tipid, title, date, rating from tips where title like '$letter%' and status = 'L' order by title LIMIT $p,$ile");
  10. echo "Strona: ";
  11. for($i=0;$i<ceil($numrows/$ile);$i++) {
  12. echo '<a href=list.php?pagenum='.($i+1).'&catid='.($catid).'>['.($i+1).']</a> ';
  13. }
  14. ?>

Moze dla 'profesjonalistow' to sie wydae smieszne co zrobilem, ale za dobry w tym nie jestem, a na stronie niby wszystko dziala, jednak tylko to szwankuje co juz pisalem wyzej. Wiem, ze blad jest gdzies w tym dolnym kodzie, jednak nie wiem co zmienic, zeby w kazdej kategori wyswietlalo tyle podstron ile ma byc w danej kategorii, a nie wszystkie podstrony z wszystkimi artykulami.

Pozdrawiam i mam nadzieje, ze ktos pomoze ;]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Saddam92
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


  1. <?php
  2. $numrows = mysql_num_rows(mysql_query("select tipid, title, date, rating from tips where title like '$letter%' and status = 'L' and catid=$catid order by title"));
  3. ?>
Wydaje mi się że zapominałeś o ograniczeniu wyników do danej kategorii..

Pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
p.s admini dlaczego parser bbcode w kodzie [php] przed " wstawia \ (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował Saddam92 7.07.2007, 20:06:56
Go to the top of the page
+Quote Post
mate
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 27.06.2007

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


ok teraz dziala, dzieki!
Ale pojawil sie 2 blad..
Do listy podstron jest dodawana zawsze o jedna wiecej niz ich jest faktycznie i tamta jest pusta. Jak to zablokowac?
Pozdro
Go to the top of the page
+Quote Post
Saddam92
post
Post #4





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


  1. <?php
  2. for($i=1;$i<ceil($numrows/$ile);$i++) {
  3. echo '<a href=list.php?pagenum='.$i.'&catid='.($catid).'>['.$i.']</a> ';
  4. }
  5. ?>
trochę nie potrzebnie kombinowałeś ..
Go to the top of the page
+Quote Post
mate
post
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 27.06.2007

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


to jest to!
wielkie dzięki!
pozdro:)
Go to the top of the page
+Quote Post

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: 21.12.2025 - 08:30