Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] paginacja - nie chcę wszystkich stron tylko
Forum PHP.pl > Forum > Przedszkole
Taifun
Witam, Jak zrobić aby paginacja nie robiła spisu wszystkich podstron tylko np.


Mój kod wygląda tak:
  1. <?php
  2. $q = 'SELECT id, name, img, wsw, ocena, czas FROM films ORDER BY id DESC LIMIT '.(($page - 1) * $g_ile).', '.$g_ile;
  3. $ra = mysql_query ($q) or die(mysql_error());
  4. $licz = mysql_num_rows ($ra);
  5. $smarty->assign('lfilm', $licz);
  6. while ($r = mysql_fetch_assoc($ra)) {
  7.    $ngl[] = array(
  8.        'id' => $r['id'],
  9.        'name' => $r['name'],
  10.        'img' => $r['img'],
  11.        'wsw' => $r['wsw'],
  12.        'ocena' => $r['ocena'],
  13.        'czas' => $r['czas'],
  14.        'link' => smarty_title_url($r['name']),
  15.        'gwiazdki' => gwiazdki($r['ocena']),
  16.    );
  17. }
  18.  
  19. $smarty->assign('ngl', $ngl);
  20.  
  21. if ($stron > 1){
  22.    if ($page > 1 && $numerstrony != 2){
  23.        $w=$page-1;
  24.        $spis = '<span class="pages">Strona '.$numerstrony.' z '.$licz.' </span><a href="'.$_url.'filmy,'.$w.'">poprzednia</a> ';
  25.    }
  26.    for ($i = 1; $i <= $stron; $i++){
  27.        if ($i != $page && $i != 1){
  28.            $spis = ''.$spis.'<a href="'.$_url.'filmy,'.$i.'">'.$i.'</a> ';
  29.        }
  30.    }
  31.    
  32.    if ($page < $stron){
  33.        $w=$page+1;
  34.        $spis = ''.$spis.'<span class="extend">...</span> <a href="'.$_url.'filmy,'.$w.'">następna</a> ';
  35.    }
  36.  
  37.    $smarty->assign('stronicowanie', $spis);
  38. }
  39.  
  40. $contents[] = array('glowna');
  41. ?>
potreb
Tylko np?? Masz kod i ten twój pomysł?
Taifun
taki chciałbym efekt

a teraz skrypt robi wszystkie strony
sowiq
http://www.mis-algoritmos.com/2007/05/27/d...gination-class/ - gotowa klasa (pod PHP 4, ale możesz przerobić). Zawsze możesz też przejrzeć kod i napisać coś własnego na tej podstawie.
Taifun
mam nadzieję, że z niej korzystasz skoro polecasz smile.gif pozdrawiam.
sowiq
Tak, jest ok. Ale tak jak mówię - trzeba przerobić trochę żeby była zgodna z PHP 5.
Taifun
są gdzieś przykłady gotowe co paginacji z tej klasy (z użyciem mysql)?
nie widzę żadnych pętli co bym mógł zastosować.
Kod
$p = new pagination;
$p->Items(1000);
$p->limit(5);
$p->currentPage(14);
sowiq
Prościej już chyba nie mogli opisać... Masz tam mnóstwo przykładów, a pod każdym masz przykład, jak to będzie wyglądało. Najprościej tak:
Kod
$p = new pagination;
$p->items(1000); // ilość elementów
$p->limit(10);  // ilość na stronę
$p->currentPage(1); // bieżąca strona
$p->parameterName("p"); // parametr, który będzie przekazywany w adresie, tutaj: ?p=2 dla strony nr 2
$p->show();  // wyświetlenie paginatora
Ludzie, nawet jak Wam podadzą jak na tacy, to Wam się nie chce przeczytać kawałka kodu... ;/
Taifun
chodzi mi o przykład z użyciem mysql. Np.
  1. <?php
  2.  
  3. $ile = mysql_num_rows ( mysql_query ( 'SELECT id FROM `prognoza`' ) ) ;
  4. $p = new navigator ( $ile , 5 , $page ) ;
  5.  
  6. $format = Array (
  7.    'link'             => 'index.html?page=#PAGE#' ,
  8.    'current'     => '<b style="color:green;">%s</b>' ,
  9.    'number'        => 'class_number' ,
  10.    'previous'         => 'class_prev' ,
  11.    'next'            => 'class_next' ,
  12.    'separator'        => '<h2>...</h2>' ,
  13. ) ;
  14.  
  15. $p->format ( $format ) ;
  16.  
  17. $query = mysql_query ( 'SELECT * FROM `prognoza` ORDER BY `id` DESC LIMIT ' . $p->start() . ', ' . $p->end() ) ;
  18.  
  19. while ( $row = mysql_fetch_array ( $query ) )
  20. {
  21.    echo '<a href="archiwum.html?id='.$row['id'].'">'.$row['time'].'</a>';
  22.    echo '<br />';
  23. }
  24.  
  25.  
  26.  
  27. echo $p->previous ( ) ;
  28. echo $p->links ( ) ;
  29. echo $p->next ( )  ;
  30.  
  31. ?>
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.