Для скачивания готового кода щелкните по ссылке ниже. Готовый код самописного движка с блогом на PHP
Видео к уроку 5.
Видео к уроку 6.
Для скачивания готового кода щелкните по ссылке ниже. Готовый код самописного движка с блогом на PHP
Видео к уроку 5.
Видео к уроку 6.
Файлы прикрепил к следующему уроку.
Код урока для скачивания.
Архив файлов урока можно скачать по ссылке ниже.
engine.com
Видео с урока.
<? //1. Задаем переменные $items=430; $items_per_page=25; $pages_in_paginator=11; $paginator_offset=floor($pages_in_paginator/2); //2. Рассчитываем количество страниц. $page_count=ceil($items/$items_per_page); //3. Если не задана страница в гет параметре то мы ее приравниваем к нулю. if(!isset($_GET['page'])) $_GET['page']=0; $cur_page=intval($_GET['page']); if($cur_page>=$page_count)$cur_page=$page_count-1; //4. Рассчет первой страницы для вывода в пагинаторе $start_page_pagination=$cur_page-$paginator_offset; if($start_page_pagination<0)$start_page_pagination=0; //5. Рассчет последней страницы для вывода в пагинаторе $end_page_pagination=$start_page_pagination+$pages_in_paginator; if($end_page_pagination>=$page_count)$end_page_pagination=$page_count-1; if($end_page_pagination-$start_page_pagination<$pages_in_paginator && $page_count>$pages_in_paginator) { $end_page_pagination=$page_count-1; $start_page_pagination=$end_page_pagination-$pages_in_paginator; } ?> <a href='?page=0'><<</a> | <?if($cur_page-1>=0){?> <a href='?page=<?=$cur_page-1?>'><</a> | <? } for($i=$start_page_pagination;$i<=$end_page_pagination;$i++) { $style=""; $i1=$i+1; if($i==$cur_page) $style="style='color:red;'"; echo "<a href='?page=$i' $style> $i1</a> | "; } if($cur_page+1<$page_count-1) { ?> <a href='?page=<?=$cur_page+1?>'>></a> | <?}?> <a href='?page=<?=$page_count-1?>'>>></a>
index.php
<link rel=»stylesheet» href=»https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css»><link rel=»stylesheet» href=»https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css»> <script src=»https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js»></script> <script src=»https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js»></script> <script type=»text/javascript»>function loadXMLDoc(q) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == XMLHttpRequest.DONE) { // if (xmlhttp.status == 200 && xmlhttp.readyState==4) { document.getElementById(«mydiv»).innerHTML = xmlhttp.responseText; } } }; xmlhttp.open(«GET», «ajax/getfruit.php?q=»+q, true); xmlhttp.send();}
function save_fruit(id,text) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == XMLHttpRequest.DONE) { // if (xmlhttp.status == 200 && xmlhttp.readyState==4) { } } }; xmlhttp.open(«GET», «ajax/savefruit.php?id=»+id+»&text=»+text, true); xmlhttp.send();}</script><input onkeyup=»loadXMLDoc(this.value)»>
<?
mysql_connect(«localhost»,»root»,»»);mysql_select_db(«ajax»);$_GET[‘q’]=urldecode($_GET[‘q’]);$data=mysql_query(«select * from `fruits`»);while($res=mysql_fetch_array($data)) { echo «<div id=’id_{$res[‘id’]}’ data-toggle=’modal’ onclick=’setdata(\»{$res[‘fruit’]}\»,\»{$res[‘id’]}\»)’ data-target=’#myModal’ class=’btn btn-success’>».$res[‘fruit’].»</div>»; }?>
<div class=»container»>
<!— Trigger the modal with a button —>
<!— Modal —> <div class=»modal fade» id=»myModal» role=»dialog»> <div class=»modal-dialog»> <!— Modal content—> <div class=»modal-content»> <div class=»modal-header»> <button type=»button» class=»close» data-dismiss=»modal»>×</button> <h4 class=»modal-title»>Введите имя нового фрукта</h4> </div> <div class=»modal-body»> <p> <input id=’fruit’ placeholder=»Введите имя фрукта»> <input id=’fruitid’ type=’hidden’> </p> </div> <div class=»modal-footer»> <button type=»button» class=»btn btn-success» onclick=»save()»>Сохранить</button> <button type=»button» class=»btn btn-default» data-dismiss=»modal»>Закрыть</button> </div> </div> </div> </div> </div><script>function save(){ text=document.getElementById(«fruit»).value; id=document.getElementById(«fruitid»).value; document.getElementById(«id_»+id).innerHTML=text; save_fruit(id,text); $(‘#myModal’).modal(‘hide’); }function setdata(text,id){ document.getElementById(«fruit»).value=text; document.getElementById(«fruitid»).value=id;}</script>
savefruit.php
<?
mysql_connect(«localhost»,»root»,»»);
mysql_select_db(«ajax»);
mysql_query(«update `fruits` set `fruit`='{$_GET[‘text’]}’ where `id`='{$_GET[‘id’]}’»);
?>
Задания на одномерные массивы.
1. Заполнить массив числами от 1 до 100 и вывести его в консоль.
2. Заполнить массив числами от 100 до 1 и вывести его в консоль.
3. Заполнить массив числами от -50 до 50 и вывести его в консоль.
4. Заполнить массив случайными числами и вывести его в консоль.
5. Заполнить массив случайными числами и найти максимальное значение.
6. Заполнить массив случайными числами и найти минимальное значение.
7. Заполнить массив случайными числами и удалить из него все элементы в которых записано число 2.
8. Заполнить массив случайными числами и выполнить его сортировку.
9. Заполнить массив случайными числами и найти в нем все значения которые повторяются более одного раза.
10. Заполнить два массива случайными числами и найти значения которые не повторяются в обоих массивах. Если число находится в обоих массивах то его не нужно выводить. Вывести нужно только те значения которые есть только в одном массиве.
Задания на двумерные массивы.
Задание:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1
1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0
0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0
1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
Большинство операторов сравнения применимы к числовым значениям. Всё это бинарные операторы, имеющие два числовых аргумента, но возвращающие логическое значение.