Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]stronicowanie wyników, Dodaje o jedną podstronę za dużo
john_doe
post 31.07.2009, 08:15:02
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Witam,
napisałem prosty skrypt, który stronicuje zwracane wyniki. Teraz sobie testuje i przy ustawieniu 3ech wyników na stronie, mając 6 rekordów do wyświetlenia skrypt wyświetla 3 strony. Powinien dwie. Ta trzecia jest pusta. Jak to zmodyfikować? Czyli będzie się tak działo gdy liczba wierszy będzie równo podzielna przez 3.

  1. <?php
  2. define('ILOSC_WYNIKOW_NA_STRONIE', 3);
  3.  
  4.            if ( countResults( $result ) > 0 )
  5.            {
  6.        
  7.                $resultPager = connect( $SELECT_FOUND_ROWS );
  8.                
  9.                $returnedRecords   = mysql_result( $resultPager, 0 );
  10.                
  11.                if( $_GET['page'] > 0 )
  12.                {
  13.                //print previous page link
  14.                    print '<a href="?page='.( $_GET['page'] - 1 ).'&id='.$_GET['id'].'">Poprzednie</a> ';
  15.                }                        
  16.  
  17.                for( $i = 0 ; $i <= floor( $returnedRecords / ILOSC_WYNIKOW_NA_STRONIE ) ; $i++ )
  18.                {
  19.                    if( $i == $_GET['page'] )
  20.                    {
  21.                        print '<a href="?page='.( $i ).'&id='.$_GET['id'].'"><b>[ '.( $i + 1 ).' ]</b></a> ';    
  22.                    }else print '<a href="?page='.( $i ).'&id='.$_GET['id'].'">[ '.( $i + 1 ).' ]</a> ';    
  23.                }
  24.                //if we aren`t on the last page
  25.                if( $_GET['page'] < floor( $returnedRecords / ILOSC_WYNIKOW_NA_STRONIE ) )
  26.                {
  27.                //print next page link
  28.                    print '<a href="?page='.( $_GET['page'] + 1 ).'&id='.$_GET['id'].'">Następne</a>';
  29.                }
  30.            }
  31. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
kaem
post 31.07.2009, 08:44:32
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


Nie jestem pewien, ale widze że w kodzie liczysz strony od zera więc może zamień warunek w for na:
  1. <?php
  2. for( $i = 0 ; $i < floor( $returnedRecords / ILOSC_WYNIKOW_NA_STRONIE ) ; $i++ )
  3. ?>
Go to the top of the page
+Quote Post
adrian.p
post 31.07.2009, 08:59:44
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 27.03.2009

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


Kod
for( $i = 0; $i <= floor( $returnedRecords / ILOSC_WYNIKOW_NA_STRONIE )-1; $i++ )

?
Go to the top of the page
+Quote Post
john_doe
post 31.07.2009, 09:11:22
Post #4





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


dałem tak jak kaem podpowiedział, jednak teraz mam mały problem z "Następny"

Ten post edytował john_doe 31.07.2009, 09:15:08
Go to the top of the page
+Quote Post
adrian.p
post 31.07.2009, 09:20:40
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 27.03.2009

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


Cytat(john_doe @ 31.07.2009, 10:11:22 ) *
dałem tak jak kaem podpowiedział, jednak teraz mam mały problem z "Następny"


Tzn jaki problem? Co sie dzieje?

EDIT:
// mam

Kod
if( $_GET['page']+1 < floor( $returnedRecords / ILOSC_WYNIKOW_NA_STRONIE ) )


Ten post edytował adrian.p 31.07.2009, 09:24:04
Go to the top of the page
+Quote Post
john_doe
post 31.07.2009, 09:24:00
Post #6





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


jak narazie mam teraz tak i chodzi niby OK z jednym ale
  1. <?php
  2. if ( countResults( $result ) > 0 )
  3.            {
  4.        
  5.                $resultPager = connect( $SELECT_FOUND_ROWS );
  6.                
  7.                $returnedRecords   = mysql_result( $resultPager, 0 );
  8.                
  9.                if( $_GET['page'] > 0 )
  10.                {
  11.                //print previous page link
  12.                    print '<a href="?page='.( $_GET['page'] - 1 ).'&id='.$_GET['id'].'">Poprzednie</a> ';
  13.                }                        
  14.  
  15.                for( $i = 0 ; $i < ceil( $returnedRecords / ILOSC_WYNIKOW_NA_STRONIE ) ; $i++ )
  16.                {
  17.                    if( $i == $_GET['page'] )
  18.                    {
  19.                        print '<a href="?page='.( $i ).'&id='.$_GET['id'].'"><b>[ '.( $i + 1 ).' ]</b></a> ';    
  20.                    }else print '<a href="?page='.( $i ).'&id='.$_GET['id'].'">[ '.( $i + 1 ).' ]</a> ';    
  21.                }
  22.                //if we aren`t on the last page
  23.                if( $_GET['page'] < floor( ( $returnedRecords / ILOSC_WYNIKOW_NA_STRONIE ) ) )
  24.                {
  25.                //print next page link
  26.                    print '<a href="?page='.( $_GET['page'] + 1 ).'&id='.$_GET['id'].'">Następne</a>';
  27.                }
  28.            }
  29. ?>


mam sześć rekordów do wyświetlenia i ustawiam ilosc wyników na stronie 6
wyświetla 1 podstrone ale wyświetla też link NASTĘPNY a nie powinien

Ten post edytował john_doe 31.07.2009, 09:40:59
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: 14.08.2025 - 04:51