Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Построение страниц во выборкам из MySQL


Автор: Igor_CH 16.9.2006, 11:15
взял от сюда пример  http://vingrad.ru/PHP-PHPSCRIPTS-003041
немного переделал, так как PHP4
в FAQ есть еще один пример, но этот показался удобней, т.к. вызывается функцией

вот полностью код:
Код

<?php include("db.php"); 

function pages_list($query, $page = 0, $sortcolumn = "", $sort = "DESC", $ignoreparameters = "", $resultsperpage = 20, $scriptname = "") {
 if (!$scriptname || ($scriptname == "")) $scriptname = $_SERVER['PHP_SELF'];
 if (!$ignoreparameters || ($ignoreparameters == "")) $ignoreparameters = array("page", "sortcolumn", "sort");
 if (!$sortcolumn || ($sortcolumn == "")) $sorting = "";
 else $sorting = " ORDER BY ".$sortcolumn." ".$sort." ";
 $records = $n = mysql_num_rows(mysql_query($query));
 foreach ($_REQUEST as $name => $value)
  if (!in_array($name,$ignoreparameters)) $vars = "&".$name."=".$value;
 $totalpages = 0;
 while ($n > 0) {
  $totalpages++;
  $n -= $resultsperpage;
 }
 $n = $records;
 $cp = 0;
 while ($n > 0) {
  if (($cp >= $page-3) && ($cp <= $page+3)) {
   if ($cp == $page) $tpages = "<b>[".($cp+1)."]</b>";
   else $tpages .= "<a href=\"".$scriptname."?page=".$cp.$vars."\">".($cp+1)."</a>";
   $tpages .= " ";
  }
  $cp++;
  $n -= $resultsperpage;
 }
 $query .= $sorting."LIMIT ".($page*$resultsperpage).", ".$resultsperpage;
 $pages = "Страницы: (".$cp.") ";
 if (($page != 0) && ($page-3 > 0)) $pages .= "<a href=\"".$scriptname."?page=0".$vars."\">&laquo; Первaя</a> ... ";
 $pages .= $tpages;
 if (($page != $cp-1) && ($page+4 < $cp)) $pages .= "... <a href=\"".$scriptname."?page=".($cp-1).$vars."\">Последняя &raquo;</a>";
 $results[pages] = $pages;
 $results[query] = $query;
 $results[vars] = $vars;
 return $results;
}
?>

<?php
//выводим новости
    $con = db_connect();
if (!$page) $page = 0;
if (!$sortcolumn) $sortcolumn = "nTitle";
$query = "SELECT * FROM news WHERE nStatus='On' "; 

$results = pages_list($query, $page, $sortcolumn, $sort, array("page", "nTitle", "ASC", "PHPSESSID"), 25, "");
    while ($row = @ mysql_fetch_array($results)) {
    print $row['nTitle'];
}
?>


Вот такие ошибки:
Notice: Use of undefined constant pages - assumed 'pages'
Notice: Use of undefined constant query - assumed 'query' 
Notice: Use of undefined constant query - assumed 'query' 
в строках
Код

 $results[pages] = $pages;
 $results[query] = $query;
 $results[vars] = $vars;


Что то еще надо подправить?

Автор: cyberface 16.9.2006, 11:50
Код

$results['pages'] = $pages;
$results['query'] = $query;
$results['vars'] = $vars;

Автор: Igor_CH 16.9.2006, 12:02
ну да )
ошибок теперь нет, пустой лист (

Автор: -=Ustas=- 16.9.2006, 14:11
Ты не можешь вывести данные или постраничную прокрутку сделать?

Автор: Igor_CH 18.9.2006, 09:58
Странно, но вообще ничего не выводиться. (

Автор: Igor_CH 19.9.2006, 11:36
Но не может же что код в FAQ не рабочий. Что не так?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)