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]   

> Без описания
Deny26
Отправлено: 08 Апреля, 2015 - 00:27:52
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2015  


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




Здравствуйте, ребята, помогите пожалуйста, на других форумах тупо пинают со словами "иди учи, я выучил за 7 лет и ты выучишь" это многовато для меня)

Задача такая, добавить разбивку новостей на страницы, по 10 новостей на страницу, или если не получится то последние 10 новостей... Сам я сделать не могу так как php просто не понимаю, он слишком сложный для меня.
Надеюсь на вашу помощь...

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /**
  3. * Author Tab Class for handling the CB tab api
  4. * @version $Id: cb.authortab.php 1800 2012-06-19 20:04:35Z beat $
  5. * @package CommunityBuilder
  6. * @subpackage cb.authortab.php
  7. * @author JoomlaJoe
  8. * @copyright (C) JoomlaJoe and Beat, www.joomlapolis.com
  9. * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2
  10. */
  11.  
  12. // ensure this file is being included by a parent file
  13. if ( ! ( defined( '_VALID_CB' ) || defined( '_JEXEC' ) || defined( '_VALID_MOS' ) ) ) { die( 'Direct Access to this location is not allowed.' ); }
  14.  
  15.  
  16. class getAuthorTab extends cbTabHandler {
  17.        
  18.         function getAuthorTab() {
  19.                 $this->cbTabHandler();
  20.         }
  21.        
  22.         function getDisplayTab($tab,$user,$ui) {
  23.                 global $_CB_framework, $_CB_database, $mainframe;
  24.  
  25.                 $jVer           =       checkJversion();
  26.                
  27.                 $showHits       =       $_CB_framework->getCfg( 'hits' );
  28.                 $showRating     =       $_CB_framework->getCfg( 'vote' );
  29.  
  30.                 $return         =       '';
  31.                
  32.                 if ( $jVer >= 2 ) {
  33.                         $curTz  =       date_default_timezone_get();
  34.                         date_default_timezone_set( 'UTC' );
  35.                         $now    =       date( 'Y-m-d H:i:s' );
  36.                         date_default_timezone_set( $curTz );
  37.                 } else {
  38.                         $now    =       date( 'Y-m-d H:i:s', $_CB_framework->now() + $_CB_framework->getCfg( 'offset' ) * 60 * 60 );
  39.                 }
  40.  
  41.                 $query          =       "SELECT a.id, a.catid, a.title, a.hits,a.created, ROUND( r.rating_sum / r.rating_count ) AS rating,r.rating_count";
  42.                 if ( $jVer >= 1 ) {
  43.                         $query  .=      ', CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,'
  44.                                         .       ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug';
  45.                 }
  46.                 $query          .=      "\n FROM #__k2_items AS a"
  47.                                         .       "\n LEFT JOIN #__k2_rating AS r ON r.itemID=a.id";
  48.                 if ( $jVer < 2 ) {
  49.                         $query  .=      "\n INNER JOIN #__sections AS s ON s.id=a.sectionid AND s.title != 'Mamblog'";
  50.                 }
  51.                 if ( $jVer >= 1 ) {
  52.                         $query  .=      "\n LEFT JOIN #__k2_categories AS cc ON cc.id = a.catid";
  53.                 }
  54.                 $query          .=      "\n WHERE a.created_by=". (int) $user->id .""
  55.                                         .       "\n AND a.published = 1 "
  56.                                         .       "\n AND (publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now')"
  57.                                         .       "\n AND (publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now')"
  58.                                         .       "\n AND a.access IN (" . implode( ',', CBuser::getMyInstance()->getAuthorisedViewLevelsIds( ( $jVer >= 2 ? false : true ) ) ). ')'                                      .       "\n ORDER BY a.created DESC"
  59.                                         ;
  60.                 $_CB_database->setQuery( $query );
  61.                 //print $_CB_database->getQuery();
  62.                 $items = $_CB_database->loadObjectList();
  63.                 if(!count($items)>0) {
  64.                         $return .= "<br /><br /><div class=\"cbNoArticles\" style=\"width:95%;\">";
  65.                         $return .= _UE_NOARTICLES;
  66.                         $return .= "</div>";
  67.                         return $return;
  68.                 }
  69.  
  70.                 $return .= $this->_writeTabDescription( $tab, $user );
  71.                
  72.                 $return .= "<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\" width=\"95%\">";
  73.                 $return .= "<tr class=\"sectiontableheader\">";
  74.                 $return .= "<th>"._UE_ARTICLEDATE."</th>";
  75.                 $return .= "<th>"._UE_ARTICLETITLE."</th>";
  76.                 if( $showHits ) $return .= "<th>"._UE_ARTICLEHITS."</th>";
  77.                 if( $showRating ) $return .= "<th>"._UE_ARTICLERATING."</th>";
  78.                 $return .= "</tr>";
  79.                 $i=1;
  80.                 $hits="";
  81.                 $rating="";
  82.                 foreach($items AS $item) {
  83.                 if ( isset( $mainframe ) && is_callable( array( $mainframe, "getItemid" ) ) ) {
  84.                 $itemid = $mainframe->getItemid( $item->id );
  85.                 } elseif (is_callable( "JApplicationHelper::getItemid" ) ) {
  86.                         $itemid = JApplicationHelper::getItemid( $item->id );
  87.                 } else {
  88.                         $itemid = null;
  89.                 }
  90.                 $itemidtxt      = $itemid ? "&Itemid=" . (int) $itemid : "";
  91.                         $i= ($i==1)? 2 : 1;
  92.                         if (is_callable(array("mosAdminMenus","ImageCheck"))) {
  93.                                 $starImageOn = mosAdminMenus::ImageCheck( 'rating_star.png', '/images/M_images/' );
  94.                                 $starImageOff = mosAdminMenus::ImageCheck( 'rating_star_blank.png', '/images/M_images/' );
  95.                         } else {                        // Mambo 4.5.0:
  96.                                 $starImageOn  = '<img src="'.$_CB_framework->getCfg( 'live_site' ).'/images/M_images/rating_star.png" alt="" align="middle" style="border:0px;" />';
  97.                                 $starImageOff = '<img src="'.$_CB_framework->getCfg( 'live_site' ).'/images/M_images/rating_star_blank.png" alt="" align="middle" style="border:0px;" />';
  98.                         }
  99.                         $img="";
  100.                         if( $showRating ) {
  101.                                 for ($j=0; $j < $item->rating; $j++) {
  102.                                         $img .= $starImageOn;
  103.                                 }
  104.                                 for ($j=$item->rating; $j < 5; $j++) {
  105.                                         $img .= $starImageOff;
  106.                                 }
  107.  
  108.                                 $rating = '<td><span class="content_rating">';
  109.                                 $rating .= $img . '&nbsp;/&nbsp;';
  110.                                 $rating .= intval( $item->rating_count );
  111.                                 $rating .= "</span></td>\n";
  112.                         }
  113.                         if ( $showHits ) {
  114.                                 $hits = "<td>".$item->hits."</td>";
  115.                         }
  116.                         if ( $jVer == 2 ) {
  117.                                 require_once( $_CB_framework->getCfg( 'absolute_path' ). '/components/com_k2/helpers/route.php' );
  118.                                 $url    =       cbSef( K2HelperRoute::getItemRoute( $item->slug, $item->catid ) );
  119.                                 if ( ! stristr( $url, 'Itemid' ) ) {
  120.                                         //$url  =       $_CB_framework->getCfg( 'live_site' ). '/' . $url;
  121.                                 } else {
  122.                                         $url    =       cbSef( $url );
  123.                                 }
  124.                         } elseif ( $jVer == 1 ) {
  125.                                 $url    =       cbSef( 'index.php?option=com_k2&view=item&id=' . (int) $item->id . $itemidtxt );
  126.                         } else {
  127.                                 $url    =       cbSef( 'index.php?option=com_k2&view=item&id=' . (int) $item->id . $itemidtxt );
  128.                         }                      
  129.                        
  130.                         $return .= "<tr class=\"sectiontableentry$i\"><td>".cbFormatDate( $item->created )."</td><td><a target='_blank' href=\""
  131.                                         . $url . "\">"
  132.                                         .$item->title."</a></td>".$hits.$rating."</tr>\n";
  133.  
  134.                 }
  135.                 $return .= "</table>";
  136.  
  137.                 return $return;
  138.         }
  139. }       // end class getAuthorTab.
  140. ?>
 
 Top
exlant
Отправлено: 08 Апреля, 2015 - 02:27:23
Post Id



Посетитель


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


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




Ошиблись форумом, вам в - Напишите за меня, пожалуйста! (может кто то бесплатно и сделает)
По пагинации куча инфы в нете, и готовых бесплатных решений тоже хватает!
А если сами не хотите разбираться, то за это платить как бы надо....

P/S вы когда дома ремонт хотите сделать, так же ищете исполнителей?? Мол, помогите пожалуйста, сам сделать не могу, слишком сложно, и учиться тоже не хочу, и не могу, так как опять же, сильно сложно, сделайте за меня, ну пожалуйста....
 
 Top
dcc0_refirbished
Отправлено: 08 Апреля, 2015 - 09:21:30
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2015  


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




Задача с учётом её формулировки довольно простая. Однако, есть одна сложность - чисто субъективно - ваш код, достаточно большой для того, чтобы его ковырять.
Последние 10 новостей выводятся указанием в запросе mysql двух значений в поле limit

PHP:
скопировать код в буфер обмена
  1.  order by id desc limit 0,  10

(Добавление)
Вот мой простой любительский рабочий код листалки новостей.
Когда второй запрос возвращается пустым, возврат на первую страницу.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.  
  3. if(!isset($_GET['sub'])) {
  4. $i=0;
  5.  } else  {
  6. $i=$_GET['i'];
  7. $i=$i+4;
  8. }
  9.   mysql_connect(HOST, USER, PASSWORD) or die('error! No Connection!');
  10.   mysql_query("SET NAMES utf8");
  11.     mysql_select_db(NAME_BD) or die('error! Check BD connection');     
  12. $res = mysql_query('select * from  news order by id desc limit '.$i.',  5' ) or die('error!');
  13. $res1 = mysql_query('select * from  news order by id desc limit '.$i.',  5' ) or die('error!');
  14. $row1 = mysql_fetch_array($res1);
  15.  
  16. if(empty($row1['head'])) {
  17. $i=0;
  18. $res = mysql_query('select * from  news order by id desc limit 0,  5' ) or die('error!');
  19. }
  20.  
  21. while ($row = mysql_fetch_array($res)) {
  22.  
  23. ?>
  24. <p>
  25. <?=$row['head']."\r\n"?>
  26. <?=$row['date']?>
  27. <?=nl2br($row['text'])?>
  28. </p>
  29.  
  30. <?
  31. }
  32. ?>
  33.  
  34.  


Кнопка (форма) с переменной $i для страниц:

CODE (html):
скопировать код в буфер обмена
  1. <form method="get">
  2. <input type="hidden" name="i" value="<?=$i;?>">
  3.  <input type="submit" value="Следующая страница" name="sub">
  4.   </form>
 
 Top
Deny26
Отправлено: 08 Апреля, 2015 - 11:12:35
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2015  


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




dcc0_refirbished Спасибо, и так сойдет, жаль что не могу поблагодарить вас кнопочкой.
exlant зачем рот открывать когда там пусто? Набивай посты с умом.
 
 Top
dcc0_refirbished
Отправлено: 08 Апреля, 2015 - 11:13:21
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2015  


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




Кстати, довольно удобно, наверное, делать пагинацию с тегами select/option.

Удобно имхо и для пользователя и код не очень замороченный получается.
 
 Top
exlant
Отправлено: 08 Апреля, 2015 - 14:35:24
Post Id



Посетитель


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


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




Deny26 мало того, что тупой, так еще и хам!

гуглом хотя бы научись пользоваться http://google[dot]com/search?q=пагинация+php
 
 Top
dcc0_refirbished
Отправлено: 08 Апреля, 2015 - 17:26:30
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2015  


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




Deny26 зря вы наехали на exlant, он прав в принципе - решений очень много.
Это самая избитая тема php.

Хотя понятно, конечно, что вопросы по php будут бесконечно одни и те же.

Поэтому не вижу смысла ругаться.

(Отредактировано автором: 08 Апреля, 2015 - 17:27:07)

 
 Top
Deny26
Отправлено: 08 Апреля, 2015 - 18:15:47
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2015  


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




dcc0_refirbished, кто еще на кого наехал, exlant просто забыл наверное что он не родился со знаниями php, как говорил Эйнштейн "все мы гении, но если судить о интеллекте рыбы по ее умению лазить по деревьям, то она всю жизнь проживет думая что она идиотка" exlant советую взять на заметку.

dcc0_refirbished, сделал вывод лимита, пока будет 20 новостей, а на счет сделать по примеру, для начала нужно понимать то что видишь, а я не понимаю, вот и обратился на этот форум, за бесплатной помощью...
 
 Top
exlant
Отправлено: 08 Апреля, 2015 - 19:00:38
Post Id



Посетитель


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


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




вот и надо было с самого начало писать, мол так и так, помогите разобраться, а не
Цитата:
Сам я сделать не могу так как php просто не понимаю, он слишком сложный для меня.
Надеюсь на вашу помощь...

Что для меня звучит примерно следующим образом - сам разбираться не буду, платить не хочу, а сделать надо... Таких халявщиков в реальной жизни обхожу 10 дорогой!

И про свои знания/не знания php я тут нигде не писал!

dcc0_refirbished на заметку, библиотека mysql устарела, и будет удалена в следующей версии php, http://php.net/manual/ru/functio...ysql-connect.php , используйте mysqli, или pdo!
 
 Top
Deny26
Отправлено: 09 Апреля, 2015 - 00:57:16
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2015  


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




exlant пишет:
Таких халявщиков в реальной жизни обхожу 10 дорогой!

Вот и сделайте то что делаете всегда, заранее спасибо;)
 
 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