[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Интересно для сравнения. Разбиваем новости.
Страницы: 1, 2
GALAVA22
Добрый день программистам PHP. Недавно начал изучение языка PHP(примерно 2 месяца), поэтому прошу не судить строго. Ранее программировал на С++ немного. По крайней мере хорошо знаю принципы работы подобных языков. Сейчас осваиваю Framework'и, а в частности CodeIgniter. Но суть вопроса не в этом. Хочу обсудить коды разбиения вывода новостей на страницы и построения управляющих кнопок исключительно на РНР без сторонних приложений и библиотек. Дело в том, что я сам построил такую функцию(а точнее целый ряд функций и инструментов). Хочу получить оценку настоящих "опытных" программистов РНР'шников. Но для начала хотелось бы увидеть Ваши решения этого вопроса. Напомню - интересуют коды ИСКЛЮЧИТЕЛЬНО на РНР. Кому интересно, после Ваших кодов готов выложить свой, как отдельную библиотеку + дополнение к файлу и CSS оформление. Ну а кому понравится - то буду только рад! Заранее спасибо. smile.gif
Valick
Цитата (GALAVA22 @ 27.09.2016 - 19:06)
Кому интересно, после Ваших кодов готов выложить свой

уже не интересно

_____________
Стимулятор ~yoomoney - 41001303250491
GALAVA22
Видимо это мало кому интересно. Просто хотелось бы сравнить подходы, так, как я нагромоздил там слишком много. Однако все работает исключительно исправно! Далее выложу сам код, если кому интересно. Мне тоже интересно Ваше мнение.
Подключаемый файл pagesAndButtons.php

<?PHP
//Максимальный идентификатор в новостях
//является определением количества страниц
//должен носить имя $col_page - массив из 1-го последнего ай-ди
/*Как пример подключения*/
$result100 = mysql_query("SELECT id
FROM show_news
ORDER BY id DESC
LIMIT 1"
, $db);
/*Как пример подключения*/$myrow100 = mysql_fetch_array($result100);
/*Как пример подключения*/$col_page = $myrow100["id"];
//Операция нахождения количества страниц из максимального идентификатора, делением на количество новостей на странице,
//где количество страниц это - $c
//Здесь задается количество выводимых новостей на странице - $cars1

$c;
$cars1=6;
$cars2=$cars1-1;
$w=$col_page;
$q=$cars1;
$x=$w / $q;
$z=(integer)($w / $q);
if ($x>$z)
{ $c = $z+1; }
else
{ $c = $z; }
//формируем оператор, отвечающий за данную страницу. $page
if($_GET["page"])
{
$int=is_numeric($_GET["page"]);
if($int==false)
{ $page = 1; }
else
{
if($c>=($_GET["page"]))
{
$page = $_GET["page"];
}
else
{
$page = $c;
}
}
}

else { $page = 1; }
/*Функция инкремента страниц*/
function inc($page1)
{
if($page1)
{
return $page1+1;
}
}

/*Функция декремента страниц*/
function dec($page1)
{
if($page1>1)
{
return $page1-1;
}
else
{
return $page1;
}
}

//Функция для определения активной кнопки путем сравнения страниц
function sravnenie($page1, $page2)
{
if($page1 == $page2)
{
$activater = "active";
}
return $activater;
}
//Функция кнопок
function button_pages($page1, $numer, $c) {
$pager=$page1;
$righter;
$i=0;
$ii=0;
if($page1>3)
{
if(!($page1==($c-1)))
{
$i = $page1-3;
}
else
{
$i = $page1-4;
}
if($page1==$c)
{
$i = $page1-5;
}
}

if ($pager==1)
{
$lefter="active";
}
if ($numer<=1)
{
$righter="active";
}
if ($pager)
{

//Функция декремента страниц
$decuber = dec($page1);
if($lefter!="active")
{
$link_inc2 = "news_index.php?page=";
$c2 = 1;
}
else
{
$link_inc2 = "#";
$decuber = "";
$c2="";
}

printf('<div class="buttons"><a href="%s%s"><div class="button" id="%s"><|</div></a>', $link_inc2, $c2, $lefter);
printf('<a href="%s%s"><div class="button" id="%s"><<</div></a>', $link_inc2, $decuber, $lefter);
//Цикл, который выводит кнопки
for($i, $ii; $i<$c && $ii<5; $i++, $ii++)
{
if(sravnenie($page1, $i+1)=="active")
{
$blocker = "#";
}
else
{
$blocker = "";
}
printf('<a href="news_index.php?page=%s%s"><div class="button" id="%s">%s</div></a>', $i+1, $blocker, sravnenie($page1, $i+1), $i+1);
}
//Функция инкремента страниц
$incuber = inc($page1);
if($righter!="active")
{
$link_inc = "news_index.php?page=";
}
else
{
$link_inc = "#";
$incuber = "";
$c="";
}
printf('<a href="%s%s"><div class="button" id=%s>>></div></a>', $link_inc, $incuber, $righter);
printf('<a href="%s%s"><div class="button" id=%s>|></div></a>', $link_inc, $c, $righter);
}
printf('</div>');
}
?>

Далее некоторый код в исполняемом файле, например как у меня - news_index.php

<?PHP
//Блок по построению страниц и кнопок страниц
include('pagesAndButtons.php');
?>

<html>

<?php
//Переменные для вывода конкретных новостей
$num_nach = ($page-1)*$cars1;
$num_fin = $cars1;
//Соединяемся с базой
$result3 = mysql_query("SELECT * FROM show_news ORDER BY id DESC LIMIT $num_nach, $num_fin", $db);
$myrow3 = mysql_fetch_array($result3);
$num = $myrow3['id']-$cars2;
$schyotchik = 0;
//Вызов кнопок на странице
button_pages($page, $num, $c);
?>

</html>


По поводу CSS ничего пока писать не буду. Просто не знаю как на этот код отреагируют модераторы... Кстати о модераторах - прошу понять меня правильно - все таки это моя первая публикация и мне хотелось бы узнать мнение серьезных программистов.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.