Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничный вывод новостей
 
 автор: skydemon   (10.09.2012 в 22:21)   письмо автору
212.2 Кб
 
 

Нашел на сайте softtime.info скрипт постраничного вывода новостей и немного подредактировал под себя подскажите что я сделал не так см скрин. Тоесть вывод цыфер хрен знает где с верху и не переадресовывает на следущюю страницу хотя показывает что есть 2 страницы
 <?php 
function index_page()
{
$host='localhost';
$login='root';
$password='';
$db='webcms';
(
$link=@mysql_connect($host,$login,$password)) || die('Не удалось подключиться к мускул');
mysql_select_db($db,$link) or die('Не удалось обнаружить базу данных');
// Переменная хранит число сообщений выводимых на станице 
$num 2
// Извлекаем из URL текущую страницу 
/*$page = $_GET['page'];  */
// Определяем общее число сообщений в базе данных 
$result mysql_query("SELECT COUNT(*) FROM news"); 
$posts mysql_result($result0); 
// Находим общее число страниц 
$total intval(($posts 1) / $num) + 1
// Определяем начало сообщений для текущей страницы 
$page intval($page); 
// Если значение $page меньше единицы или отрицательно 
// переходим на первую страницу 
// А если слишком большое, то переходим на последнюю 
if(empty($page) or $page 0$page 1
  if(
$page $total$page $total
// Вычисляем начиная к какого номера 
// следует выводить сообщения 
$start $page $num $num
// Выбираем $num сообщений начиная с номера $start 
$result_index mysql_query("SELECT * FROM news LIMIT $start$num"); 
// В цикле переносим результаты запроса в массив $postrow 
$myrow_index mysql_fetch_array($result_index);
if(
$myrow_index != "")
{
$sm_read file("tpl/news.html");
$sm_read implode("",$sm_read);
    do
    {
         
$edd_tamp $sm_read;
         
$text explode("[end]",$myrow_index[text]);//идентификатор в тексте показывающий, 
         
$edd_tamp str_replace("[_text]",$text[0],$edd_tamp);//Текст
         
$edd_tamp str_replace("[_title]",$myrow_index[title],$edd_tamp);//Название статьи
         
$edd_tamp str_replace("[_id]",$myrow_index[id],$edd_tamp);//id статьи, для вывода в полной статьи
         
$edd_tamp str_replace("[_author]",$myrow_index[author],$edd_tamp);//Автор статьи
         
$edd_tamp str_replace("[_date_b]",$myrow_index[date_b],$edd_tamp);//Дата размещения
         
$news .= $edd_tamp;// Склеиваем весь с генерированный код в одну переменную
    
}
    while(
$myrow_index mysql_fetch_array($result_index));
}

if(
$total 0)
{
         if (
$page != 1$pervpage '<a href= .?page=1><<</a> 
                               <a href= .?page='
. ($page 1) .'><</a> '
         
// Проверяем нужны ли стрелки вперед 
         
if ($page != $total$nextpage ' <a href= .?page='. ($page 1) .'>></a> 
                                   <a href= .?page=' 
.$total'>>></a>'
         
// Находим две ближайшие станицы с обоих краев, если они есть 
         
if($page 0$page2left ' <a href= .?page='. ($page 2) .'>'. ($page 2) .'</a> | '
         if(
$page 0$page1left '<a href= .?page='. ($page 1) .'>'. ($page 1) .'</a> | '
         if(
$page <= $total$page2right ' | <a href= .?page='. ($page 2) .'>'. ($page 2) .'</a>'
         if(
$page <= $total$page1right ' | <a href= .?page='. ($page 1) .'>'. ($page 1) .'</a>';
         
// Вывод меню 
         
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
}
else 
$news "<p align='center'>Нет записей в базе данных</p>";//Если записей нет, то вывести это сообщение
return $news;
}
?> 

  Ответить  
 
 автор: confirm   (10.09.2012 в 22:58)   письмо автору
 
   для: skydemon   (10.09.2012 в 22:21)
 

Почему сверху, это вы со своим шаблоном разбирайтесь, а вот почему нет переходов - а вы что за адрес видите при наведении мыши на ссылку?

  Ответить  
 
 автор: skydemon   (10.09.2012 в 23:46)   письмо автору
 
   для: confirm   (10.09.2012 в 22:58)
 

test1.ru?page=2

  Ответить  
 
 автор: skydemon   (10.09.2012 в 23:49)   письмо автору
 
   для: skydemon   (10.09.2012 в 23:46)
 

cмотри вобщем переход выполняется но новости остаются на прежнем месте ну как выводились 2 первые так и выводятся

  Ответить  
 
 автор: skydemon   (10.09.2012 в 23:54)   письмо автору
 
   для: skydemon   (10.09.2012 в 23:49)
 

ой я дебил сори у мя закоментирована переменная $_GET['page'];

  Ответить  
 
 автор: confirm   (11.09.2012 в 00:20)   письмо автору
 
   для: skydemon   (10.09.2012 в 23:46)
 

href= .?page - будет указывать на корневую паку документов, то есть domain/?page=2
а
href= ?page - будет указывать на script_name.php/?page=2
с чего это у вас получается
test1.ru?page=2 - ?

  Ответить  
 
 автор: skydemon   (11.09.2012 в 14:33)   письмо автору
 
   для: confirm   (11.09.2012 в 00:20)
 

да) уже все работает) правдо теперь с выводом самого поля не получаеться не в шаблоне дело почемуто в любом выводиться в верху

  Ответить  
 
 автор: skydemon   (11.09.2012 в 14:34)   письмо автору
 
   для: confirm   (11.09.2012 в 00:20)
 

у мя вывод по другому немного
вот так на индексной вывожу модуль

<?
if($_GET['news'])$news $_GET['news'];

if(!
$news)
{
include(
"news.php");
$content index_page();
}

if(
$news)
{
include(
"text.php");
$content news($news);
}
##############################################################################

# themes #####################################################################
/*
     <?php echo $this->title?>
     <?php echo $this->content?>
    
*/

$view = new themes('/tpl/');
$view->set('title'$title);
$view->set('content'$content);
$view->display('index.html');
##############################################################################

  Ответить  
 
 автор: confirm   (11.09.2012 в 14:53)   письмо автору
 
   для: skydemon   (11.09.2012 в 14:34)
 

РНР выдаст ваш навигатор в потоке в том порядке, как вы указали, а заниматься размещением на его странице, это не его забота. Если вы неверно определили местоположение в шаблоне во время вывода, значит измените это место.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования