- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
<?php
include '/system/config_bd.php'; // соединение с базой
class pagination_start {
public $page;
public $CountListPage=10;
public $sql="SELECT * FROM `news`";
public $start;
public $limit;
public $ires;
public function page_settings() {
$this->page_get();
$this->start=($this->page-1)*$this->CountListPage;
$this->limit=" LIMIT $this->start,$this->CountListPage";
$this->ires=mysql_query($this->sql.$this->limit);
}
public function page_get() {
if(empty($_GET['page'])){$this->page=1;}
else {$this->page=$_GET['page'];}
}
}
class pagination_end extends pagination_start{
public $link_interval;
public $i;
public $sp;
public function pagination($class_all,$class_once) {
$link_page = '';
$this->page_get();
$count=mysql_num_rows(mysql_query($this->sql));
if($count>$this->CountListPage){
$CountList=ceil($count/$this->CountListPage);
if($this->page > 3 && $CountList > 5){echo '<span class="'.$class_all.'"><a href="?page=1'.$this->link_interval.'">1</a></span><span class="'.$class_all.'">...</span>';}
if($this->page > 3 && $CountList > 5){$this->sp=$this->page-2;}else{$this->sp=1;}
if($this->page > $CountList-3 && $CountList > 5){$this->sp=$CountList-4; }
if($CountList>5)$cpc=5;else $cpc=$CountList;
for($this->i=$this->sp;$this->i<$this->sp+$cpc;$this->i++){
if($this->i == $this->page){ printf ('<span class="'.$class_once.'">%s</span>',$this->i); }
else{ $suit=$this->link_interval.$this->i;
$links_cent = '<span class="'.$class_all.'"><a href="?page='.$suit.'">'.$this->i.'</a></span>';
echo $links_cent; } }
$suit=$this->link_interval."?page=".$CountList."";
if($this->page<=$CountList-3 and $CountList>5){echo '<span class="'.$class_all.'">...</span> <span class="'.$class_all.'"><a href="'.$suit.'">'.$CountList.'</a></span> ';} }
}
}
$CountListPage = 5; // Сколько объектов отображать на странице # по умолчанию 10
$sql="SELECT * FROM `news` "; // SQL запрос # по умолчанию "SELECT * FROM `news`"
$class_all='page_all'; // Css класс всех страниц кроме текущей
$class_once='class_once'; // Css класс всех страниц кроме текущей
/* Формирование страниц и sql запрос */
$pagination = new pagination_start();
$pagination->CountListPage = $CountListPage;
$pagination->sql = $sql;
$pagination->page_settings();
while($ires_result=mysql_fetch_array($pagination->ires))
{
echo $ires_result['id']."<br/>";
}
/* Пагенирование */
$pagination_end = new pagination_end();
$pagination_end->CountListPage = $CountListPage;
$pagination_end->sql = $sql;
$pagination_end->pagination($class_all,$class_once); // От css клас от 2 страници до предпоследней
а признак большого говнокода
но оформление, конечно, динамично-петушковое, это да.
пагенирование же, класа страници
даже так? лучше бы просто трололо оказался..
>идеально работающая пагинация - говнокод
bwahaha =) золотце, это типичное неструктурированное пхп-говно, вобравшее в себя все антипаттерны.
вот да
оптимистично
проблема в том, что всем, буквально, впадлу повторять одно и тоже 1516 раз для каждого новоиспеченного динамического петушка. вытирай слезки и читай весь раздел /php/
Классика пхпешного говнеца
- Скульные запросы размазаны по коду класса.
- намешаны логика и представление
далее особенности
что сие означает ???
$class_all='page_all'; // Css класс всех страниц кроме текущей
$class_once='class_once'; // Css класс всех страниц кроме текущей
не mysql_fetch_array а mysql_fetch_assoc на куя 2 массива если пользуешь только 1
Да и вообще зачем пагинатору знание о базе ????
архитектура пагинатра должна быть такая
$max_item=5;
$count_item=count($rows);
$paginator= new paginator($count_item,$max_item);
$paginator->write();
$class_once='class_once'; // Css класс всех страниц кроме текущей
Это я передаю цсс классы, что бы можно было оформить пагинацию как душе угодно
и все равно, каша получается
$p=new Paging($first,$last);
$p->getCurrent();
$p->first();
$p->last();
$p->prev();
$p->next();
и никакого html
люблю читать их отчеты о том как в виртуал боксе и ядре линукса нашли тупейшие баги-опечатки
Няшечками они были бы, если бы они ещё научились багрепорты нормальные писать, а не спамить ссылками.
У меня на некоторых сайтах такие окошки выскакивают
Внимание!
В Вашем компьютере обнаружен вирус
[исправить бесплатно без регистрации и СМС]
Не с Дмитрием Аналотольевичем ли катались на лыжах?
особенно круто когда зашел на сайт с андроидного устройства
Я им тоже самое сказал а они мне карму в ответ слили
как соотносяца R# for C++ и CLion инспекции к пивасу?
и почему у Романа нет виртуалбокса? Винду на виртуалбокс школьнкии 16-ти летние умеют ставить
> и почему у Романа нет виртуалбокса?
Посту четыре года, вроде уже и под линукс версия есть. Да и тогда вроде у мелкософта не было бесплатных виртуалок для тестов. Малварь с торрентов качайте сами.
Я уже понял что пивас есть под линукс
Было бы странно еслиб не было
Надо оче сильно упопорца чтобы сделать код парсера или анализатора виндозависимым
Я знаю, что они есть. Я не уверен, были ли они 4 года назад.
> Было бы странно еслиб не было
Её официально релизнули всего где-то полгода назад.
с пивасой?
с пивасой?
пивас непричем
речь о хромиуме
мне нравится когда в моем коде находят хуиту вроде
unsigned int foo();
/////////
if (! foo()) {
///
}
с пивасой?
http://govnokod.ru/22448
с пивасой?
ржал до слез....)))))))))))))) спасибо
обычно это значит, что идеально работает она до первых изменений, а потом система сыпется как карточный домик, и немало времени уходит на согласование всех измененных частей друг с другом
с пивасой?
1 ... 7 [8] 9 ... 546 - к примеру 8 текущая страница. Передаете 2 css класса и задаете любой вид начиная от
1 ... [8] ... 546 заканчивая
Какой то та jquery фишкой.
Я вообще не понял сути гавнокода, если он работает и работает как нужно, где говно проявляется ?
Я писал проекты с подобной пагинацией, только она была без классов. Применял к следующим вещам:
Юзеры
Новости
Комментарии
Статьи
Материал
Да все что угодно, все действия происходят в цикле
while($ires_result=mysql_fetch_array($pa gination->ires))
{
echo $ires_result['id']."<br/>";
}
Формируете нужный sql запрос и все, в данном примере просто сформирован запрос в табличку news и для примера я вывел в столбик все id (сугубо для вида)
Обычно в цикл я засовываю шаблонизатор, а уже в .tpl файлах лежит дизайн материала скажем.
А кто такой Инканус и зачем он Вам?
А, может, шесть или семь,
Тот адресат
Утерян насовсем,
И не сказать,
Не написать ему -
Тому тебе.
Себе, тому...
кастрюля начинает жарить картофель сразу после того как закончит его варить.
Ну не весь, а только гребень
Ну и в начале своего пути я стал жертвой Попова.
Кстати, а как померить серьёзность web-разработчика?
Наверное уровнем уважения и доверия окружающих коллег, клиентов и/или руководства умноженное на свою ответственность. Получим условный коэффициент серьезности. Ну это скорее так, коэффициент.
Хочу поинтересоваться откуда такое проявление интереса к развитию моей личности ?
Если "чисто спортивный интерес", то можем подискутировать в личной переписке.
И как я понял, ковногод (если рассматривать на уровне функций или методов) не так плохо, как говноархитектура.
А в наше время когда идет работа под бизнес, где иногда скорость в разы важнее качества, то далеко не каждая компания может позволить с десяток сеньеров и DDD.
--скорее, я стал веб-разработчиком
> язык программирования не имеет значения
Олололо. И на хуе дудец, и на яйцах игрец.
на самом деле ты зря доебался до nepster. Ты знаешь, я последний человек в мире, кто будет соглашаться с ПХПшником, но тут он на 80% прав.
Понимание каких-нить ADT куда важнее синтаксиса и стандартной либы конкретного ЯП: ее всегда можно посмотреть в референсе
А для разработчиков тулзов для игр на бирже будет не лишним понимание бинарных опционов, но больше оно никому не надо
Где-то на баше была цитата, что-то вроде:
Я весь из себя программист записался на пары по информатике к гуманитариям. Прихожу, а там преподавательница спрашивает
-- Какие языки программирования вы знаете?
Когда меня спросили, честно сказал, что знаю C, Java и python.
-- Что так мало? - спросила преподавательница, - Джвойку вам!
И тут девочка гуманитарий тянет руку:
-- Pascal, C, C++, Java, Haskell, Brainfuck, Lua, Vala, ...
Я аж прихренел от такого. Гуманитарий, а знает пяднадцать языков!
Прихожу на пересдачу, в ходе разговора узнаю, что же подразумевалось под "знаете". Тут уж преподавательница прихренела, а мы под столом ржали всей маршруткой.
http://u.to/QF_8Dw (Youtube)
В котором из двух?
Ну-ну... Даже пхпшник?
Не нужно ругать язык и напоказ отстраняться. Надо набраться смелости и признаться. Друзьям, коллегам, родственникам, а главное - себе самому. Плюнуть на мнения других, построенные на том, что сказали в подворотне; ощутить свободу самовыражения; поверить в себя, принять себя таким, какой есть.
Зачем поддакивать стереотипам, если язык подходит под задачу, кормит всю твою семью и, откровенно говоря, сильно нравится? Надо встать на табуретку и громко сказать: "Здравствуйте, я - Борманд, и я - пхпшник!"
Вообще, пхпшники специально ругают свой язык, чтобы у них конкурентов меньше было. Язык удачен как по порогу вхождения и простоте, так и по скорости разработки и получения прибыли.
Давайте распиарим PHP, пусть жирующие пхпрограммисты переходят на Haskell!
В драм тока кондер и транзистер
Она или DRAM, или (в очень редких случаях) NOR Flash
SRAM это круто и быстро и рефрешить не нужно, но оче дорого
слишком много транзисторов на бит
Он же про микроконтроллеры. А там только стыд и срам.
> слишком много транзисторов на бит
Там ещё "проводов" дохуя - питание на каждую ячейку, джва битлайна... Плотность вообще никакая выходит, да.
> NOR Flash
> Flash
В качестве оперативной памяти? Пруф в студию!
ps: борманд, ты же понимаешь что от оперативной памяти нужно чтобы
1) адресовался бит
2) можно было сделать в нее/из нее mov в регистр (тоесть чтобы она была подключена к одной шыне с цпу)
Можно хоть дискету с буфером в качестве RAM юзать. Ну будет у тебя OS 4 года грузится, но не в этом же суть
Дык тут просто код с флешки исполняют код, не копируя в оперативку. Никто туда не пишет. Все мелкие контроллеры так умеют, это не считается чем-то крутым, да и не от хорошей жизни делается...
> в нее
Где тут обещают, что я могу делать mov в неё и не убить её нахуй через пару дней?
Ну ахуеть теперь. Назвать дискету/диск/флеш RAM - это сильный ход.
Я даже не знаю, чем такую карту крыть...
Если я скажу, что нужно "почти постоянное и одинаковое время доступа к любому участку", то ты возьмёшь и тупо задержек напихаешь на свою дискету, чтобы любой байт на ней за большое (но одинаковое) время читался и писался.
И даже магнитная лента - это RAM.
И даже флэш перфолента - всего то надо успевать её переписывать на новую. И добавить время этой перезаписи ко времени доступа. Но кого это ебут эти мелочи?
у DRAM оно совсем не всегда одинаковое. Ты что, Касперски не читал?
>>и тупо задержек напихаешь на свою дискету
нет, я поставлю кеш перед ней чтобы ты мог по байтово читать
>>лента
Алан Тюринг так и говорил
Борманд, давай по-начному. Дай мне определение оперативной памяти
Не дам. SDRAM под него один хер не подойдёт, как ты уже написал выше. Она больше на блочное устройство похожа, просто быстрая ;(
З.Ы. А вот старая асинхронная DRAM всё-таки ближе была к памяти с произвольным доступом...
А линейка кеша + контроллер FLASH + NOR FLASH чем не оперативка?
Сдохнет быстро.
> NOR
Стоит дорого.
Тогда уж NAND лепи в свою оперативку, чо. И контроллер как в SSD, чтобы флешку равномерно дрочил.
как быстро?
>>NAND
Ой нет, NAND это слишком уж блочно. NOR же можно побайтово писать, в NAND нельзя.
Хотя при ОЧЕ УМНОМ контроллере с хорошим буфером это не проблема.
если совсем буквоёбствовать то никогда доступ не был произвольным. Все равно стучаться в открытую страницу и в закрытую это не одинаково
100к где-то. Для RAM это пиздец как мало. Хотя ОЧЕ УМНЫЙ контроллер, конечно, будет ремапать страницы и размазывать всё равномерно.
> NOR же можно побайтово писать
Один раз, ага :) 0xFF -> 0xFE -> 0xFD... ой, а почему-то 0xFC получилось... Придётся всю страницу тереть.
> в открытую страницу и в закрытую это не одинаково
Даже на первых x86, емнип, ещё не парились по этому поводу - тупо RAS/CAS по кругу гоняли...
канает, однако если дело тут только в том что туннельный эффект убивает плавающий затвор то это же вопрос времени
>>Один раз, ага :) 0xFF -> 0xFE -> 0xFD...
ну да, во флеше тереть надо всю страницу, ну так в DRAM вообще рефрешиться надо. И чтение страницы всю ее разрешает.
>> ещё не парились по этому поводу - тупо RAS/CAS по кругу
всмысле всегда открывали страницу и ждали?
лол)
To keep to a minimum the number of pins on a RAM chip, a chip address is broken into two parts: the column and the row address. With standard DRAM, these must be presented to the DRAM chip in sequence.
A different kind of DRAM chip, referred to as "page-mode" or "static-column" RAM, lets the designer skip sending out part of the address much of the time. This shortens the read/write time tremendously. The supporting logic is more complex, howewer. The speedup is enough to allow the Compaq Deskpro 386/16 to access RAM with no wait states in the best case, two wait states in the worst.
Нагуглилось в журнальчике за 87 год.
значит, до FAGE MODE DRAM они не умели получать бенефит от открытой страницы
Да его и не было, походу. Частоты то совсем смешные по нынешним меркам.
А вот на 386 уже пришлось и про кэш задуматься и про саму DRAM.
в классической писе же одна шина была, и сидели на ней все: от контроллера памяти, до биоса и контроллера флоппи
Ну кроме того мы научились открывать сразу много страничек во всем ранге, чередовать их (многоканальность) итд
Ну вот скрывать эту латенси научились, да. Но почти не уменьшили. Замели под ковёр, так сказать ;)
а в SPD что пишут? Контроллер разве не в тактах высчитывает сколько там ему CAS какой-нить ждать?
Латенси скрыли длинной линейкой кеша и постоянным префетчем
> SPD
Х.з. Скорее всего такты под набор частот. Погугли, плиз, мне тоже интересно, я просто не за компом.
Minimum RAS to CAS delay -- Nanoseconds
Всё, мой мир рухнул.
Ну оно и понятно - по наносекундам ты всегда можешь посчитать сколько тактов ждать при выбранной частоте (даже нестандартной). А наоборот - нет.
5 == 10 хулепхп.