Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Постраничный вывод новостей из БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
MBmusic
Отправлено: 19 Апреля, 2013 - 21:50:44
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




в общем не получается сделать постраничный вывод новостей из бд......делал по примеру из этого форума......вот мой код:

PHP:
скопировать код в буфер обмена
  1.  
  2.                 $this->posts = $this->database->query("SELECT * FROM news ORDER BY id DESC") or die ("ERROR!");
  3.                 $total_articles_number = mysql_num_rows($this->posts);
  4.                 $articles_per_page = 1;
  5.                 $total_pages = ceil($total_articles_number/$articles_per_page);
  6.                
  7.                 for ($i=0; $i<$total_pages; $i++) {
  8.                         $page_number=$i*$articles_per_page;
  9.                         if ($page_number!=$from) {
  10.                                 echo "<a href='".$PHP_SELF.$page_number."'> ".($i+1)." </a>";
  11.                         } else {
  12.                                 echo $i+1;
  13.                         }
  14.                 }
  15.  


не хочет работать, и выдает ошибку:

Notice: Undefined variable: from in D:\sites\myblog\www\site\www\applications\ctrlIndex.php on line 17 1 Notice: Undefined variable: from in D:\sites\myblog\www\site\www\applications\ctrlIndex.php on line 17 Notice: Undefined variable: PHP_SELF in D:\sites\myblog\www\site\www\applications\ctrlIndex.php on line 18 2
 
 Top
Skycrafter
Отправлено: 19 Апреля, 2013 - 21:58:16
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Март 2013  


Помог: 2 раз(а)




$_SERVER["PHP_SELF"] и $from
Undefined variable не объявленные переменные

(Отредактировано автором: 19 Апреля, 2013 - 22:01:05)



-----
Тысячемильный путь начинается с первого шага...
 
 Top
MBmusic
Отправлено: 19 Апреля, 2013 - 22:03:11
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




немного переделал, но тоже не работает:

PHP:
скопировать код в буфер обмена
  1.  
  2. $per_page=1;
  3. if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
  4. $start=abs($page*$per_page);
  5.                 $this->posts = $this->database->query("SELECT * FROM news ORDER BY id DESC LIMIT $start, $per_page") or die ("ERROR!");
  6.                 $q="SELECT count(*) FROM news";
  7. $res=mysql_query($q);
  8. $row=mysql_fetch_row($res);
  9. $total_rows=$row[0];
  10.  
  11. $num_pages=ceil($total_rows/$per_page);
  12.  
  13. for($i=1;$i<=$num_pages;$i++) {
  14.   if ($i-1 == $page) {
  15.         $this->str_per = $i." ";
  16.   } else {
  17.     $this->str_per = '<a href="'."/posts/".$i.'">'.$i."</a> ";
  18.   }
  19. }
  20.  


на странице должно показывать по одному посту, у меня в базе 2 поста......показывает норм......но когда хочу перейти на вторую страницу то выскакиевает сообщение The requested URL /posts/2 was not found on this server. странно...
 
 Top
Skycrafter
Отправлено: 19 Апреля, 2013 - 22:08:13
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Март 2013  


Помог: 2 раз(а)




MBmusic пишет:
"/posts/".$i.'"
если у тебя есть файл 2.php тогда приклей расширение

(Отредактировано автором: 19 Апреля, 2013 - 22:09:27)



-----
Тысячемильный путь начинается с первого шага...
 
 Top
MBmusic
Отправлено: 19 Апреля, 2013 - 22:10:17
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




нет у меня такого файла нету, у меня новости выводятся в шаблоне posts.php......
 
 Top
LIME
Отправлено: 20 Апреля, 2013 - 02:51:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




А это уже проблема разбора урла в роутере
 
 Top
MBmusic
Отправлено: 20 Апреля, 2013 - 08:30:31
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




вот мой роутер:

PHP:
скопировать код в буфер обмена
  1.  
  2. public function __construct($path) {
  3.                 $this->route = explode('/', $path);
  4.                 $this->run();
  5.         }
  6.        
  7.         private function run() {
  8.                 $url = array_shift($this->route);
  9.                 if (!preg_match('#^[a-zA-Z0-9.,-]*$#', $url))
  10.                         throw new Exception('Invalid path');
  11.                 $ctrlName = 'ctrl' . ucfirst($url);
  12.                 if (file_exists('applications/'. $ctrlName.'.php')) {
  13.                         $this->runController($ctrlName);
  14.                 } else {
  15.                         array_unshift($this->route, $url);
  16.                         $this->runController('ctrlIndex');
  17.                 }
  18.         }
  19.        
  20.         private function runController($ctrlName) {
  21.                 include "applications/" . $ctrlName . ".php";
  22.  
  23.                 $ctrl = new $ctrlName();
  24.  
  25.                 if (empty($this->route) || empty($this->route[0])) {
  26.                         $ctrl->index();
  27.                 } else {
  28.                         if (empty($this->route))
  29.                                 $method = 'index';
  30.                         else
  31.                                 $method = array_shift($this->route);
  32.                         if (method_exists($ctrl, $method)) {
  33.                                 if (empty($this->route))
  34.                                 $ctrl->$method();
  35.                                 else
  36.                                         call_user_func_array (array($ctrl,$method), $this->route);
  37.                         } else
  38.                                 throw new Exception('Error 404');
  39.                 }
  40.         }
  41.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB