Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
И как это должно работать?$stroka = 1;
if($stroka < 20){
foreach($nfiles as $line) {
echo "<tr><td></td></tr>";
$stroka++;
}
}
Думаю так должно работать.
Не единственный - в гугл с запросом "pagination php"А это единственный способ, может есть еще какие варианты?
Неужели для этого нужно 180Кб кода?
ну как можно сделать... Берешь, узнаешь количество результирующих записей, если их больше чем 20 например, то выводишь только первые 20. Через строку браузера (запрос типа "GET") читаешь номер страницы и выводишь записи, начиная с (20 * (номер страницы) - 20) по (20 * (номер страницы)).как можно сделать постраничный вывод строк?
Например по 20 строк на страницу.
$rezult = $this->MySQL_class->query ( "SELECT COUNT(*) as cnt FROM {$sql}" );
$row = $this->MySQL_class->fetch_object ();
$users = $row->cnt;
$url_pages_news = location_site . "/{$url}";
$page = intval ($url_pages);
$total = intval ( ($users - 1) / $num ) + 1;
if (empty ( $page ) || $page < 0)
$page = 1;
if ($page > $total)
$page = $total;
$start = $page * $num - $num;
if ($page != 1)
$pervpage = "<a class=pages_title href='{$url_pages_news}1'><</a> ";
if ($page != $total)
$nextpage = " <a class=pages_title href='{$url_pages_news}" . $total . "'>></a>";
if ($page - 3 > 0)
$page3left = " <a class=pages_title href='{$url_pages_news}" . ($page - 3) . "'>" . ($page - 3) . "</a> ";
if ($page - 2 > 0)
$page2left = " <a class=pages_title href='{$url_pages_news}" . ($page - 2) . "'>" . ($page - 2) . "</a> ";
if ($page - 1 > 0)
$page1left = "<a class=pages_title href='{$url_pages_news}" . ($page - 1) . "'>" . ($page - 1) . "</a> ";
if ($page + 3 <= $total)
$page3right = " <a class=pages_title href='{$url_pages_news}" . ($page + 3) . "'>" . ($page + 3) . "</a>";
if ($page + 2 <= $total)
$page2right = " <a class=pages_title href='{$url_pages_news}" . ($page + 2) . "'>" . ($page + 2) . "</a>";
if ($page + 1 <= $total)
$page1right = " <a class=pages_title href='{$url_pages_news}" . ($page + 1) . "'>" . ($page + 1) . "</a>";
$_pages = '<div>Страницы: ' . $pervpage . $page3left . $page2left . $page1left . "<span class=pages_title_activ>" . $page . "</span>" . $page1right . $page3right . $page2right . $nextpage . '</div><br>';
return array($_pages, $start, $num);
index.php:Товар1|Описание1|Дата1|Автор1
Товар2|Описание2|Дата2|Автор2
require_once "./Pager/Pager.php";
$files = file("files.txt");
$myData = array();
foreach($files as $tovar) {
$line = explode('|', $tovar);
$str = "<tr><td>".$line[0]."</td><td>".$line[1]."</td></tr>";
$myData[] = $str;
}
// Настройки Pager
$params = array(
'itemData' => $myData,
'perPage' => 10,
'delta' => 8, // for 'Jumping'-style a lower number is better
'append' => true,
//'separator' => ' | ',
'clearIfVoid' => false,
'urlVar' => 'entrant',
'useSessions' => true,
'closeSession' => true,
//'mode' => 'Sliding', //try switching modes
'mode' => 'Jumping',
);
$pager = & Pager::factory($params);
$page_data = $pager->getPageData();
$links = $pager->getLinks();
$selectBox = $pager->getPerPageSelectBox();
echo "
<table summary='example 1'>
".$links['all']."
<tr>
<td colspan='6'>".print_r($page_data)."</td>
</tr>
</table>
<form action='".$_SERVER['PHP_SELF']."' method='GET'>
На страницу:<br />".$selectBox."
<input type='submit' value='Выбрать' />
</form>";
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter
*
* An open source application development framework for PHP 4.3.2 or newer
*
* @package CodeIgniter
* @author ExpressionEngine Dev Team
* @copyright Copyright (c) 2008, EllisLab, Inc.
* @license codeigniter.com/user_guide/license.html
* @link codeigniter.com
* @since Version 1.0
* @filesource
*/
// ------------------------------------------------------------------------
/**
* Pagination Class
*
* @package CodeIgniter
* @subpackage Libraries
* @category Pagination
* @author ExpressionEngine Dev Team
* @link codeigniter.com/user_guide/libraries/pagination.html
*/
class CI_Pagination {
var $base_url = ''; // The page we are linking to
var $total_rows = ''; // Total number of items (database results)
var $per_page = 10; // Max number of items you want shown per page
var $num_links = 2; // Number of "digit" links to show before/after the currently viewed page
var $cur_page = 0; // The current page being viewed
var $first_link = '‹ First';
var $next_link = '>';
var $prev_link = '<';
var $last_link = 'Last ›';
var $uri_segment = 3;
var $full_tag_open = '';
var $full_tag_close = '';
var $first_tag_open = '';
var $first_tag_close = ' ';
var $last_tag_open = ' ';
var $last_tag_close = '';
var $cur_tag_open = ' <b>';
var $cur_tag_close = '</b>';
var $next_tag_open = ' ';
var $next_tag_close = ' ';
var $prev_tag_open = ' ';
var $prev_tag_close = '';
var $num_tag_open = ' ';
var $num_tag_close = '';
var $page_query_string = FALSE;
var $query_string_segment = 'per_page';
/**
* Constructor
*
* @access public
* @param array initialization parameters
*/
function CI_Pagination($params = array())
{
if (count($params) > 0)
{
$this->initialize($params);
}
log_message('debug', "Pagination Class Initialized");
}
// --------------------------------------------------------------------
/**
* Initialize Preferences
*
* @access public
* @param array initialization parameters
* @return void
*/
function initialize($params = array())
{
if (count($params) > 0)
{
foreach ($params as $key => $val)
{
if (isset($this->$key))
{
$this->$key = $val;
}
}
}
}
// --------------------------------------------------------------------
/**
* Generate the pagination links
*
* @access public
* @return string
*/
function create_links()
{
// If our item count or per-page total is zero there is no need to continue.
if ($this->total_rows == 0 OR $this->per_page == 0)
{
return '';
}
// Calculate the total number of pages
$num_pages = ceil($this->total_rows / $this->per_page);
// Is there only one page? Hm... nothing more to do here then.
if ($num_pages == 1)
{
return '';
}
// Determine the current page number.
$CI =& get_instance();
if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE)
{
if ($CI->input->get($this->query_string_segment) != 0)
{
$this->cur_page = $CI->input->get($this->query_string_segment);
// Prep the current page - no funny business!
$this->cur_page = (int) $this->cur_page;
}
}
else
{
if ($CI->uri->segment($this->uri_segment) != 0)
{
$this->cur_page = $CI->uri->segment($this->uri_segment);
// Prep the current page - no funny business!
$this->cur_page = (int) $this->cur_page;
}
}
$this->num_links = (int)$this->num_links;
if ($this->num_links < 1)
{
show_error('Your number of links must be a positive number.');
}
if ( ! is_numeric($this->cur_page))
{
$this->cur_page = 0;
}
// Is the page number beyond the result range?
// If so we show the last page
if ($this->cur_page > $this->total_rows)
{
$this->cur_page = ($num_pages - 1) * $this->per_page;
}
$uri_page_number = $this->cur_page;
$this->cur_page = floor(($this->cur_page/$this->per_page) + 1);
// Calculate the start and end numbers. These determine
// which number to start and end the digit links with
$start = (($this->cur_page - $this->num_links) > 0) ? $this->cur_page - ($this->num_links - 1) : 1;
$end = (($this->cur_page + $this->num_links) < $num_pages) ? $this->cur_page + $this->num_links : $num_pages;
// Is pagination being used over GET or POST? If get, add a per_page query
// string. If post, add a trailing slash to the base URL if needed
if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE)
{
$this->base_url = rtrim($this->base_url).'&'.$this->query_string_segment.'=';
}
else
{
$this->base_url = rtrim($this->base_url, '/') .'/';
}
// And here we go...
$output = '';
// Render the "First" link
if ($this->cur_page > ($this->num_links + 1))
{
$output .= $this->first_tag_open.'<a href="'.$this->base_url.'">'.$this->first_link.'</a>'.$this->first_tag_close;
}
// Render the "previous" link
if ($this->cur_page != 1)
{
$i = $uri_page_number - $this->per_page;
if ($i == 0) $i = '';
$output .= $this->prev_tag_open.'<a href="'.$this->base_url.$i.'">'.$this->prev_link.'</a>'.$this->prev_tag_close;
}
// Write the digit links
for ($loop = $start -1; $loop <= $end; $loop++)
{
$i = ($loop * $this->per_page) - $this->per_page;
if ($i >= 0)
{
if ($this->cur_page == $loop)
{
$output .= $this->cur_tag_open.$loop.$this->cur_tag_close; // Current page
}
else
{
$n = ($i == 0) ? '' : $i;
$output .= $this->num_tag_open.'<a href="'.$this->base_url.$n.'">'.$loop.'</a>'.$this->num_tag_close;
}
}
}
// Render the "next" link
if ($this->cur_page < $num_pages)
{
$output .= $this->next_tag_open.'<a href="'.$this->base_url.($this->cur_page * $this->per_page).'">'.$this->next_link.'</a>'.$this->next_tag_close;
}
// Render the "Last" link
if (($this->cur_page + $this->num_links) < $num_pages)
{
$i = (($num_pages * $this->per_page) - $this->per_page);
$output .= $this->last_tag_open.'<a href="'.$this->base_url.$i.'">'.$this->last_link.'</a>'.$this->last_tag_close;
}
// Kill double slashes. Note: Sometimes we can end up with a double slash
// in the penultimate link so we'll kill all double slashes.
$output = preg_replace("#([^:])//+#", "\\1/", $output);
// Add the wrapper HTML if exists
$output = $this->full_tag_open.$output.$this->full_tag_close;
return $output;
}
}
// END Pagination Class
/* End of file Pagination.php */