Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как выводить под категорий как теги или с пагинацией?

Как выводить под категорий как теги или с пагинацией?


     01.03.2015    Все вопросы » Общие вопросы по PHP    2019

вопрос
Привет!
Надо выводить под категории одной категории но еще отображать их как теги. То есть что бы размеры ссылки был в совместности с количеством новостей из бд.
Вот код который выводит:

<?php

if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

$all = $db->super_query("SELECT COUNT(name) AS c FROM " . PREFIX . "_category WHERE parentid=37");
$cats = $db->query("SELECT * FROM " . PREFIX . "_category WHERE parentid=37 ORDER BY id DESC LIMIT " . $all['c']);
$i=0;  
    while ($row = $db->get_row($cats))
    {
            $menu .= "<a href=\"{$PHP_SELF}/podborki_filmov/{$row['alt_name']}\">{$row['name']}</a>, " . chr($all['c']);
        $i++;
    }
    $db->free();
echo $menu;

?>


Или как просто выводить и разделить на страницы?(было бы еще лучше)
Вот что нашел и немного изменил но все ровно не работает:

<?php

if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}
/*
=====================================================
Функция пагинации
-----------------------------------------------------
Массив $navi содержит основную информацию.

$navi['start'], $navi['numb'] - Для MySQL LIMIT;
$navi['panel'] - Сама панель навигации;
$navi['page'] - Текущая страница;
$navi['all_page'] - всего страниц;

Функция принимает:
$num_news - количество новостей на страницу;
$all_news - всего новостей;
$way - путь для ссылок в пагинации;
=====================================================
*/

function navigation( $num_news, $all_news, $way ) {
    global $config;
        
    //Находим число страниц
    $all_page = intval($all_news/$num_news);
    if( intval( $all_page * $num_news ) !== intval( $all_news ) ) { $all_page++; }
    $navi['all_page'] = $all_page;
    
    //Определяем страницу
    $page = intval( $_REQUEST['page'] );
    if( $page < 1 || !$page ) { $page = 1; }
    else if( $page > 0 && $page > $all_page ) { $page = $all_page; }
    $navi['page'] = $page;
    
    $prev = $page-1;
    $next = $page+1;
    
    //Для MySQL запроса
    if( $invert ) { $navi['start'] = $all_news - $page * $num_news; if( $navi['start'] < 0 ) $navi['start'] = 0; }
    else $navi['start'] = ( $page * $num_news ) - $num_news;
    $navi['numb']  = ( $num_news );
    
    if( $all_page < 2 ) return false;
            
      //Определяем откуда начинать
      $pg_m = $page - 3;
      $pg_p = $page + 4;
      $pg_f = $pg_p + 4;
    
      if( $pg_m > 0 && $all_page > 6 && $pg_f <= $all_page ) {
        $n = $pg_m;    
        if( $page >= 5 && $all_page > $page_limit ) {
          $navi['panel'] .= '<a page="1" href="'.$way.'1"><span>1</span></a><span>..</span>';
        }        
      } else if( $pg_f >= $all_page && $page > 6 ) {
        $n = $all_page - 6;
        $navi['panel'] .= '<a page="1" href="'.$way.'1"><span>1</span></a><span>..</span>';
      }  else {
        $n = 1;
      }
    
      //Где заканчивать
      if ( $all_page > 6 && $pg_p < $all_page ) $finish=true;
    
      if( $pg_p < $all_page && $all_page > 4 && $page > 1) {
        $k = $pg_p;
      } else if( $page < 3 && $pg_f < $all_page ) {
        $k = $pg_p + 1;
      } else if( $finish ) {
        $k = $all_page;
      } else {
        $k = $all_page + 1;
      }
    
    
      //Генерируем страницы
      for($n; $n<$k; $n++) {
        if($page == $n) {
          $navi['panel'] .= '<span class="selected">'.$n.'</span>';
        } else {
          $navi['panel'] .= '<a page="'.$n.'" href="'.$way.$n.'"><span>'.$n.'</span></a>';
        }
      }
    
      //Последняя страница    
      if( $pg_p < $all_page && $all_page > $page_limit ) {
        $navi['panel'] .= '<span>..</span>';
      }
    
      if ( $finish ) { $navi['panel'] .= '<a page="'.$all_page.'"  href="'.$way.$all_page.'"><span>'.$all_page.'</span></a>'; }
      //Последняя страница
        
      return $navi;
}

$all = $db->super_query("SELECT COUNT(*) AS c FROM " . PREFIX . "_category");

$navi = navigation(10, $all['c'], 'http://filmzoom.ru/podborki_filmov/page-');

$cars = $db->query("SELECT * FROM " . PREFIX . "_category ORDER BY id DESC LIMIT ".$navi['start'].", ".$navi['numb']);
    while ($rows = $db->get_row($cars))
    {
        $id = $rows['id'];
        $name = $rows['name'];
            $car .="
                <tr>
                <td align='center'>$i</td>
                <td align='center'>$id</td>
                <td align='center'>$name</td>
                </tr>";
        $i++;
    }
    $db->free($cars);
?>

Буду крайне благодарен за помощь!

Ответа пока нет


Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх