Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Stronnicowanie - błąd
raum
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.03.2009

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


Witam! Chciałbym was prosić o pomoc w rozwiązaniu następującego problemu. Mam taki kod do porcjowania wyników w którym mam ustawione by wyświetlało się 20 wyników na stronie. Gdy chcę wyświetlanie wyników ograniczyć do 15 wyświetleń wtedy po wyświetleniu 15 artykułów w danej kategorii na dole strony wyświetla mi się stronicowanie w postaci 1,2,3,4,5. Moje pytanie brzmi dlaczego nie wyświetla mi się na dole przejście do drugiej strony tylko wyświetla się 5 stron ponumerowanych od 1 do 5.

  1. <?php
  2.  
  3. @$baza = mysql_connect('localhost', 'root', '') or die ("Nie można się poł?czyć"); mysql_select_db(newsy) or die ("Nie mozna wybrać bazy danych");
  4.  
  5. define('DOMYSLNA_KATEGORIA',2);
  6. $id = intval($_GET['id']);
  7. if($id <= 0) $id = DOMYSLNA_KATEGORIA;
  8.  
  9. $ile_newsow_na_stronie = 20;
  10.  
  11. $strona = intval($_GET['strona']) - 1;
  12.  
  13. list($ilosc) = @mysql_fetch_row(mysql_query("select count(*) from wpisy WHERE kategoria=".$id));
  14.  
  15. if(($strona < 0) || (($s * $ile_newsow_na_stronie) > $ilosc)) $strona = 0;
  16.  
  17. $q = mysql_query("select id, tytul, tresc from wpisy WHERE kategoria=".$id." order by id desc limit ".($strona * $ile_newsow_na_stronie).", $ile_newsow_na_stronie"); echo mysql_error();
  18.  
  19. while(list($id, $tytul, $tresc, $slowa, $nick, $email, $adres, $data) = @mysql_fetch_row($q)) {
  20.  
  21. echo '<h2><b><a href="http://'.$adres.'" title="'.$slowa.'">'.$tytul.'</b></h2></a><br><div class="story"><img src="http://open.thumbshots.org/image.pxf?url=http://'.$adres.'" p class="story"> '.$tresc.'<br><br><b>Dodał:</b> '.$nick.' <b>dnia</b> '.$data.' <br><br><b>Słowa kluczowe:</b> '.$slowa.'<br><br></div>';
  22.  
  23. }
  24.  
  25. $max = intval($ilosc / $ile_newsow_na_stronie);
  26.  
  27. for($i=0;$i<$max;$i++) {
  28.  
  29. if($strona == $i) {
  30.  
  31. echo ($i + 1).' ';
  32.  
  33. }else{
  34.  
  35. echo '<a href="?strona='.($i+1).'">'.($i+1).'</a> ';
  36.  
  37. }
  38.  
  39. }
  40.  
  41. ?>


Proszę o pomoc.

Ten post edytował raum 13.05.2010, 13:41:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
raum
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.03.2009

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


nospor dzięki za info dziś postaram się zmienić to tak by pętla wyświetlała ilość artykułów znajdujących się w danej kategorii a nie tyle stron ile wynika z liczby rekordów.

Mam jeszcze jedno pytanie związane z moim problemem - poniższe rozwiązanie działa mi na localhost a nie działa na serwerze cal.pl. Proszę o pomoc albo chociaż wyjaśnienie gdzie leży błąd.

Listing1 - index.php

  1.  
  2. @$baza = mysql_connect('localhost', 'root', '') or die ("Nie można się poł?czyć");
  3. mysql_select_db(newsy) or die ("Nie mozna wybrać bazy danych");
  4. $wynik = mysql_query ("SELECT * FROM cat");
  5. while ($wynik && $rekord = mysql_fetch_array ($wynik)) {
  6.  
  7. $_GET['cat_id'];
  8. echo "<a href=\"newsy.php?id=".$rekord['cat_id']."\">";
  9. echo $rekord['cat_nazwa']."</a> <br> ";
  10. }
  11. mysql_close($baza);
  12.  


Listing2 - newsy.php

  1. mysql_connect('localhost', 'root', '') or die ("Nie można się poł?czyć");
  2. mysql_select_db(newsy) or die ("Nie mozna wybrać bazy danych");
  3.  
  4. define('DOMYSLNA_KATEGORIA',1);
  5. $id = intval($_GET['id']);
  6. if($id <= 0) $id = DOMYSLNA_KATEGORIA;
  7.  
  8. $_GET['cat_id'];
  9. $ile_newsow_na_stronie = 3;
  10.  
  11. $strona = intval($_GET['strona']) - 1;
  12.  
  13. list($ilosc) = @mysql_fetch_row(mysql_query("select count(*) from wpisy WHERE kategoria=".$id));
  14.  
  15. if(($strona < 0) || (($s * $ile_newsow_na_stronie) > $ilosc)) $strona = 0;
  16.  
  17. $q = mysql_query("select id, tytul, tresc, slowa, nick, email, adres, data, kategoria from wpisy WHERE kategoria=".$id." order by id desc limit ".($strona * $ile_newsow_na_stronie).", $ile_newsow_na_stronie"); echo mysql_error();
  18.  
  19. while(list($id, $tytul, $tresc, $slowa, $nick, $email, $adres, $data) = @mysql_fetch_row($q))
  20.  
  21. {
  22.  
  23. echo '<b><a href="http://'.$adres.'" title="'.$slowa.'">'.$tytul.'</b></a><br> '.$tresc.'<br><br><b>Dodał:</b> '.$nick.' <b>dnia</b> '.$data.' <br><br><b>Słowa kluczowe:</b> '.$slowa.'<br><br></div>';
  24.  
  25. }
  26.  
  27. $max = intval($ilosc / $ile_newsow_na_stronie);
  28.  
  29. for($i=0;$i<$max;$i++) {
  30.  
  31. if($strona == $i) {
  32.  
  33. echo ($i + 1).' ';
  34.  
  35. }else{
  36.  
  37. echo '<a href="?strona='.($i+1).'">'.($i+1).'</a> ';
  38.  
  39. }
  40.  
  41. }


Tak jak pisałem wyżej - stronicowanie działa bez zarzutów na localhost a na innym serwerze niestety sypie się :/. Macie jakieś pomysły? (dodam jeszcze iż register_globals mam ustawione na Off)

Ten post edytował raum 14.05.2010, 17:47:33
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: 29.09.2025 - 02:47