{"id":29649,"date":"2018-07-07T22:35:47","date_gmt":"2018-07-07T19:35:47","guid":{"rendered":"http:\/\/kamil-abzalov.com\/tutorials\/create-php-mvc-app-create-pagination\/"},"modified":"2020-04-11T12:07:57","modified_gmt":"2020-04-11T09:07:57","slug":"create-php-mvc-app-create-pagination","status":"publish","type":"post","link":"https:\/\/kamil-abzalov.com\/en\/tutorials\/phpmysql\/create-php-mvc-app-create-pagination\/","title":{"rendered":"Create PHP MVC app. Create pagination"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_fullwidth_header title=&#8221;Create PHP MVC app. Create pagination&#8221; _builder_version=&#8221;3.16&#8243; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_row admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px|||&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_dcsbcm_divi_breadcrumbs_module homebreadcrumbtext=&#8221;Home&#8221; hide_currentbreadcrumb=&#8221;off&#8221; _builder_version=&#8221;4.4.3&#8243; custom_padding=&#8221;0px|||&#8221; hover_enabled=&#8221;0&#8243; fontsbreadcrumbs_font_size_tablet=&#8221;51&#8243; fontsbreadcrumbs_line_height_tablet=&#8221;2&#8243; fontsseperator_font_size_tablet=&#8221;51&#8243; fontsseperator_line_height_tablet=&#8221;2&#8243; fontsbreadcrumblinks_font_size_tablet=&#8221;51&#8243; fontsbreadcrumblinks_line_height_tablet=&#8221;2&#8243;][\/et_pb_dcsbcm_divi_breadcrumbs_module][et_pb_text _builder_version=&#8221;3.27.4&#8243; border_color_all=&#8221;#ffffff&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221;]Today I am fulfil request from one of my subscribers, who asked me to make pagination. For this purpose we need to use SQL query with LIMIT. Process is described in details in video.<br \/>\n[\/et_pb_text][et_pb_video src=&#8221;https:\/\/www.youtube.com\/watch?v=EzPzlk0GlqA&#8221; _builder_version=&#8221;3.9&#8243;][\/et_pb_video][et_pb_dmb_code_snippet title=&#8221;Code lesson (Utils.php)&#8221; code=&#8221;PD9waHAKLyoqCiogMS3QsNGPIC0gNSDQv9GA0L7QtNGD0LrRgtC+0LIKKiAyLdCw0Y8gLSDRgSA2INC\/0L4gMTAg0L\/RgNC+0LTRg9C60YIgCiogMy3RjyAtINGBIDExINC\/0L4gMTUg0L\/RgNC+0LTRg9C60YIgCiogNSooMi0xKSsxID0gNgoqIDUqKDMtMSkrMSA9IDExCiogNSooNC0xKSsxID0gMTYKKiBMSU1JVCAkcGVyUGFnZSooJHBhZ2UtMSkrMSwgJGl0ZW1zQ291bnQKKiAxNSAtPiAzCiogMSAtIDAtNQoqIDIgLSA2LSAxMAoqIDMgLSAxMS0gMTUKKi8KCgoKY2xhc3MgVXRpbHMgewoKCglwdWJsaWMgZnVuY3Rpb24gZHJhd1BhZ2VyKCR0b3RhbEl0ZW1zLCAkcGVyUGFnZSkgewoKCQkkcGFnZXMgPSBjZWlsKCR0b3RhbEl0ZW1zIC8gJHBlclBhZ2UpOwoKCQlpZighaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pID09IDApIHsKCQkJJHBhZ2UgPSAxOwoJCX0gZWxzZSBpZiAoaW50dmFsKCRfR0VUWydwYWdlJ10pID4gJHRvdGFsSXRlbXMpIHsKCQkJJHBhZ2UgPSAkcGFnZXM7CgkJfSBlbHNlIHsKCQkJJHBhZ2UgPSBpbnR2YWwoJF9HRVRbJ3BhZ2UnXSk7CgkJfQoKCQkkcGFnZXIgPSAgIjxuYXYgYXJpYS1sYWJlbD0nUGFnZSBuYXZpZ2F0aW9uJz4iOwogICAgICAgICRwYWdlciAuPSAiPHVsIGNsYXNzPSdwYWdpbmF0aW9uJz4iOwogICAgICAgICRwYWdlciAuPSAiPGxpPjxhIGhyZWY9Jy9wcm9kdWN0cz9wYWdlPTEnIGFyaWEtbGFiZWw9J1ByZXZpb3VzJz48c3BhbiBhcmlhLWhpZGRlbj0ndHJ1ZSc+wqs8L3NwYW4+INCd0LDRh9Cw0LvQvjwvYT48L2xpPiI7CiAgICAgICAgZm9yKCRpPTI7ICRpPD0kcGFnZXMtMTsgJGkrKykgewogICAgICAgICAgICAkcGFnZXIgLj0gIjxsaT48YSBocmVmPScvcHJvZHVjdHM\/cGFnZT0iLiAkaS4iJz4iIC4gJGkgLiI8L2E+PC9saT4iOwogICAgICAgIH0KICAgICAgICAkcGFnZXIgLj0gIjxsaT48YSBocmVmPScvcHJvZHVjdHM\/cGFnZT0iLiAkcGFnZXMgLiInIGFyaWEtbGFiZWw9J05leHQnPtCa0L7QvdC10YYgPHNwYW4gYXJpYS1oaWRkZW49J3RydWUnPsK7PC9zcGFuPjwvYT48L2xpPiI7CiAgICAgICAgJHBhZ2VyIC49ICI8L3VsPiI7CiAKICAgICAgICByZXR1cm4gJHBhZ2VyOwoKCX0KCgp9&#8243; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;3.9&#8243; body_font_size_tablet=&#8221;51&#8243; body_line_height_tablet=&#8221;2&#8243; header_font_size_tablet=&#8221;51&#8243; header_line_height_tablet=&#8221;2&#8243;]PD9waHAKLyoqCiogMS3QsNGPIC0gNSDQv9GA0L7QtNGD0LrRgtC+0LIKKiAyLdCw0Y8gLSDRgSA2INC\/0L4gMTAg0L\/RgNC+0LTRg9C60YIgCiogMy3RjyAtINGBIDExINC\/0L4gMTUg0L\/RgNC+0LTRg9C60YIgCiogNSooMi0xKSsxID0gNgoqIDUqKDMtMSkrMSA9IDExCiogNSooNC0xKSsxID0gMTYKKiBMSU1JVCAkcGVyUGFnZSooJHBhZ2UtMSkrMSwgJGl0ZW1zQ291bnQKKiAxNSAtPiAzCiogMSAtIDAtNQoqIDIgLSA2LSAxMAoqIDMgLSAxMS0gMTUKKi8KCgoKY2xhc3MgVXRpbHMgewoKCglwdWJsaWMgZnVuY3Rpb24gZHJhd1BhZ2VyKCR0b3RhbEl0ZW1zLCAkcGVyUGFnZSkgewoKCQkkcGFnZXMgPSBjZWlsKCR0b3RhbEl0ZW1zIC8gJHBlclBhZ2UpOwoKCQlpZighaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pID09IDApIHsKCQkJJHBhZ2UgPSAxOwoJCX0gZWxzZSBpZiAoaW50dmFsKCRfR0VUWydwYWdlJ10pID4gJHRvdGFsSXRlbXMpIHsKCQkJJHBhZ2UgPSAkcGFnZXM7CgkJfSBlbHNlIHsKCQkJJHBhZ2UgPSBpbnR2YWwoJF9HRVRbJ3BhZ2UnXSk7CgkJfQoKCQkkcGFnZXIgPSAgIjxuYXYgYXJpYS1sYWJlbD0nUGFnZSBuYXZpZ2F0aW9uJz4iOwogICAgICAgICRwYWdlciAuPSAiPHVsIGNsYXNzPSdwYWdpbmF0aW9uJz4iOwogICAgICAgICRwYWdlciAuPSAiPGxpPjxhIGhyZWY9Jy9wcm9kdWN0cz9wYWdlPTEnIGFyaWEtbGFiZWw9J1ByZXZpb3VzJz48c3BhbiBhcmlhLWhpZGRlbj0ndHJ1ZSc+wqs8L3NwYW4+INCd0LDRh9Cw0LvQvjwvYT48L2xpPiI7CiAgICAgICAgZm9yKCRpPTI7ICRpPD0kcGFnZXMtMTsgJGkrKykgewogICAgICAgICAgICAkcGFnZXIgLj0gIjxsaT48YSBocmVmPScvcHJvZHVjdHM\/cGFnZT0iLiAkaS4iJz4iIC4gJGkgLiI8L2E+PC9saT4iOwogICAgICAgIH0KICAgICAgICAkcGFnZXIgLj0gIjxsaT48YSBocmVmPScvcHJvZHVjdHM\/cGFnZT0iLiAkcGFnZXMgLiInIGFyaWEtbGFiZWw9J05leHQnPtCa0L7QvdC10YYgPHNwYW4gYXJpYS1oaWRkZW49J3RydWUnPsK7PC9zcGFuPjwvYT48L2xpPiI7CiAgICAgICAgJHBhZ2VyIC49ICI8L3VsPiI7CiAKICAgICAgICByZXR1cm4gJHBhZ2VyOwoKCX0KCgp9[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson (config.php)&#8221; code=&#8221;PD9waHAKCnNlc3Npb25fc3RhcnQoKTsKCiRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gPSAiL3Zhci93d3cvdTAwMTY0OTUvZGF0YS93d3cvY2FiaW5ldC5rYW1pbC1hYnphbG92LnJ1IjsKZGVmaW5lKCJST09UIiwgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSk7CmRlZmluZSgiQ09OVFJPTExFUl9QQVRIIiwgUk9PVC4gIi9jb250cm9sbGVycy8iKTsKZGVmaW5lKCJNT0RFTF9QQVRIIiwgUk9PVC4gIi9tb2RlbHMvIik7CmRlZmluZSgiVklFV19QQVRIIiwgUk9PVC4gIi92aWV3cy8iKTsKZGVmaW5lKCJVUExPQURfRElSIiwgUk9PVC4gIi91cGxvYWRzLyIpOwpkZWZpbmUoIlVUSUxTIiwgUk9PVC4gIi91dGlscy8iKTsKCnJlcXVpcmVfb25jZSgiZGIucGhwIik7CnJlcXVpcmVfb25jZSgicm91dGUucGhwIik7CnJlcXVpcmVfb25jZSBVVElMUyAuICJVdGlscy5waHAiOwpyZXF1aXJlX29uY2UgTU9ERUxfUEFUSC4gJ01vZGVsLnBocCc7CnJlcXVpcmVfb25jZSBWSUVXX1BBVEguICdWaWV3LnBocCc7CnJlcXVpcmVfb25jZSBDT05UUk9MTEVSX1BBVEguICdDb250cm9sbGVyLnBocCc7CgoKUm91dGluZzo6YnVpbGRSb3V0ZSgpOw==&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;3.9&#8243; body_font_size_tablet=&#8221;51&#8243; body_line_height_tablet=&#8221;2&#8243; header_font_size_tablet=&#8221;51&#8243; header_line_height_tablet=&#8221;2&#8243;]PD9waHAKCnNlc3Npb25fc3RhcnQoKTsKCiRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gPSAiL3Zhci93d3cvdTAwMTY0OTUvZGF0YS93d3cvY2FiaW5ldC5rYW1pbC1hYnphbG92LnJ1IjsKZGVmaW5lKCJST09UIiwgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSk7CmRlZmluZSgiQ09OVFJPTExFUl9QQVRIIiwgUk9PVC4gIi9jb250cm9sbGVycy8iKTsKZGVmaW5lKCJNT0RFTF9QQVRIIiwgUk9PVC4gIi9tb2RlbHMvIik7CmRlZmluZSgiVklFV19QQVRIIiwgUk9PVC4gIi92aWV3cy8iKTsKZGVmaW5lKCJVUExPQURfRElSIiwgUk9PVC4gIi91cGxvYWRzLyIpOwpkZWZpbmUoIlVUSUxTIiwgUk9PVC4gIi91dGlscy8iKTsKCnJlcXVpcmVfb25jZSgiZGIucGhwIik7CnJlcXVpcmVfb25jZSgicm91dGUucGhwIik7CnJlcXVpcmVfb25jZSBVVElMUyAuICJVdGlscy5waHAiOwpyZXF1aXJlX29uY2UgTU9ERUxfUEFUSC4gJ01vZGVsLnBocCc7CnJlcXVpcmVfb25jZSBWSUVXX1BBVEguICdWaWV3LnBocCc7CnJlcXVpcmVfb25jZSBDT05UUk9MTEVSX1BBVEguICdDb250cm9sbGVyLnBocCc7CgoKUm91dGluZzo6YnVpbGRSb3V0ZSgpOw==[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson (ProductsController.php)&#8221; code=&#8221;PD9waHAKCmNsYXNzIFByb2R1Y3RzQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXIgewoKICAgIHByaXZhdGUgJHBhZ2VUcGwgPSAiL3ZpZXdzL3Byb2R1Y3RzLnRwbC5waHAiOwogICAgcHJpdmF0ZSAkcHJvZHVjdHNQZXJQYWdlID0gNTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7CiAgICAgICAgJHRoaXMtPm1vZGVsID0gbmV3IFByb2R1Y3RzTW9kZWwoKTsKICAgICAgICAkdGhpcy0+dmlldyA9IG5ldyBWaWV3KCk7CiAgICAgICAgJHRoaXMtPnV0aWxzID0gbmV3IFV0aWxzKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGluZGV4KCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgJGFsbFByb2R1Y3RzID0gY291bnQoJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpKTsKICAgICAgICAkdG90YWxQYWdlcyA9IGNlaWwoJGFsbFByb2R1Y3RzIC8gJHRoaXMtPnByb2R1Y3RzUGVyUGFnZSk7CgogICAgICAgICR0aGlzLT5tYWtlUHJvZHVjdFBhZ2VyKCRhbGxQcm9kdWN0cywgJHRvdGFsUGFnZXMpOwoKICAgICAgICAkcGFnaW5hdGlvbiA9ICR0aGlzLT51dGlscy0+ZHJhd1BhZ2VyKCRhbGxQcm9kdWN0cywgJHRoaXMtPnByb2R1Y3RzUGVyUGFnZSk7CgogICAgICAgICR0aGlzLT5wYWdlRGF0YVsncGFnaW5hdGlvbiddID0gJHBhZ2luYXRpb247CiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWyd0aXRsZSddID0gItCi0L7QstCw0YDRiyI7CiAgICAgICAgLy8gJHRoaXMtPnBhZ2VEYXRhWydwcm9kdWN0c09uUGFnZSddID0gJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpOwoKCiAgICAgICAgJHRoaXMtPnZpZXctPnJlbmRlcigkdGhpcy0+cGFnZVRwbCwgJHRoaXMtPnBhZ2VEYXRhKTsKCiAgICAgICAgaWYoJF9GSUxFUykgewogICAgICAgICAgICBpZigkX0ZJTEVTWydjc3YnXVsndHlwZSddICE9ICd0ZXh0L2NzdicgfHwgJF9GSUxFU1snY3N2J11bJ3R5cGUnXSA9PSAnJykgewogICAgICAgICAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydlcnJvcnMnXSA9ICLQntGI0LjQsdC60LAhINCS0L7Qt9C80L7QttC90L4g0LTQsNC90L3Ri9C5INGE0LDQudC7INC40LzQtdC10YIg0L3QtdC60L7RgNGA0LXQutGC0L3Ri9C5INGE0L7RgNC80LDRgiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZihtb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1snY3N2J11bJ3RtcF9uYW1lJ10sVVBMT0FEX0ZPTERFUi4kX0ZJTEVTWydjc3YnXVsnbmFtZSddKSkgewogICAgICAgICAgICAgICAgICAgICRmaWxlID0gZm9wZW4oVVBMT0FEX0ZPTERFUi4kX0ZJTEVTWydjc3YnXVsnbmFtZSddLCAiciIpOwogICAgICAgICAgICAgICAgICAgICRyb3cgPSAxOwogICAgICAgICAgICAgICAgICAgIHdoaWxlKCRkYXRhID0gZmdldGNzdigkZmlsZSwgMjAwLCAiOyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRyb3cgPT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJvdysrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bW9kZWwtPmFkZEZyb21DU1YoJGRhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZjbG9zZSgkZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQcm9kdWN0KCkgewogICAgICAgIGlmKCEkX1NFU1NJT05bJ3VzZXInXSkgewogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiAvIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmKCFpc3NldCgkX0dFVFsnaWQnXSkpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdElkID0gJF9HRVRbJ2lkJ107CiAgICAgICAgICAgICRwcm9kdWN0SW5mbyA9IGpzb25fZW5jb2RlKCR0aGlzLT5tb2RlbC0+Z2V0UHJvZHVjdEJ5SWQoJHByb2R1Y3RJZCkpOwogICAgICAgICAgICBlY2hvICRwcm9kdWN0SW5mbzsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlUHJvZHVjdCgpIHsKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZighaXNzZXQoJF9QT1NUWydpZCddKSB8fCB0cmltKCRfUE9TVFsnbmFtZSddKSA9PSAnJyB8fCB0cmltKCRfUE9TVFsncHJpY2UnXSkgPT0gJycpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J7RiNC40LHQutCwINC+0LHQvdC+0LLQu9C10L3QuNGPINC00LDQvdC90YvRhSIpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdElkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICAkcHJvZHVjdE5hbWUgPSBzdHJpcF90YWdzKHRyaW0oJF9QT1NUWyduYW1lJ10pKTsKICAgICAgICAgICAgJHByb2R1Y3RQcmljZSA9IHN0cmlwX3RhZ3ModHJpbSgkX1BPU1RbJ3ByaWNlJ10pKTsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gdHJ1ZSwgInRleHQiID0+ICLQmNC90YTQvtGA0LzQsNGG0LjRjyDQviDRgtC+0LLQsNGA0LUg0L7QsdC90L7QstC70LXQvdCwIikpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUHJvZHVjdCgpIHsKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKCiAgICAgICAgaWYoZW1wdHkoJF9QT1NUKSB8fCB0cmltKCRfUE9TVFsncHJvZHVjdE5hbWUnXSkgPT0gJycgfHwgdHJpbSgkX1BPU1RbJ3Byb2R1Y3RQcmljZSddKSA9PSAnJykgewogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiBmYWxzZSwgInRleHQiID0+ICLQndC1INGD0LTQsNC70L7RgdGMINC00L7QsdCw0LLQuNGC0Ywg0YLQvtCy0LDRgCIpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdE5hbWUgPSBzdHJpcF90YWdzKHRyaW0oJF9QT1NUWydwcm9kdWN0TmFtZSddKSk7CiAgICAgICAgICAgICRwcm9kdWN0UHJpY2UgPSBzdHJpcF90YWdzKHRyaW0oJF9QT1NUWydwcm9kdWN0UHJpY2UnXSkpOwogICAgICAgICAgICAkdGhpcy0+bW9kZWwtPmFkZFByb2R1Y3QoJHByb2R1Y3ROYW1lLCAkcHJvZHVjdFByaWNlKTsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gdHJ1ZSwgInRleHQiID0+ICLQndC+0LLRi9C5INGC0L7QstCw0YAg0LTQvtCx0LDQstC70LXQvSIpKTsgCiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVQcm9kdWN0KCkgewogICAgICAgIGlmKCEkX1NFU1NJT05bJ3VzZXInXSkgewogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiAvIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmKGVtcHR5KCRfUE9TVCkgfHwgIWlzc2V0KCRfUE9TVFsnaWQnXSkpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdElkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICBpZigkdGhpcy0+bW9kZWwtPmRlbGV0ZVByb2R1Y3QoJHByb2R1Y3RJZCkpIHsKICAgICAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN1Y2Nlc3MiID0+IHRydWUsICJ0ZXh0IiA9PiAi0KLQvtCy0LDRgCDRg9C00LDQu9C10L0iKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiBmYWxzZSwgInRleHQiID0+ICLQntGI0LjQsdC60LAg0YPQtNCw0LvQtdC90LjRjyDRgtC+0LLQsNGA0LAiKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG1ha2VQcm9kdWN0UGFnZXIoJGFsbFByb2R1Y3RzLCAkdG90YWxQYWdlcykgewoKICAgICAgICBpZighaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pID09IDAgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pID09IDEgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pIDwgMCkgewogICAgICAgICAgICAkcGFnZU51bWJlciA9IDE7CiAgICAgICAgICAgICRsZWZ0TGltaXQgPSAwOwogICAgICAgICAgICAkcmlnaHRMaW1pdCA9ICR0aGlzLT5wcm9kdWN0c1BlclBhZ2U7IC8vIDAtNQogICAgICAgIH0gZWxzZWlmIChpbnR2YWwoJF9HRVRbJ3BhZ2UnXSkgPiAkdG90YWxQYWdlcyB8fCBpbnR2YWwoJF9HRVRbJ3BhZ2UnXSkgPT0gJHRvdGFsUGFnZXMpIHsKICAgICAgICAgICAgJHBhZ2VOdW1iZXIgPSAkdG90YWxQYWdlczsgLy8gMgogICAgICAgICAgICAkbGVmdExpbWl0ID0gJHRoaXMtPnByb2R1Y3RzUGVyUGFnZSAqICgkcGFnZU51bWJlciAtIDEpOyAvLyA1ICogKDItMSkgPSA2CiAgICAgICAgICAgICRyaWdodExpbWl0ID0gJGFsbFByb2R1Y3RzOyAvLyA4CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHBhZ2VOdW1iZXIgPSBpbnR2YWwoJF9HRVRbJ3BhZ2UnXSk7CiAgICAgICAgICAgICRsZWZ0TGltaXQgPSAkdGhpcy0+cHJvZHVjdHNQZXJQYWdlICogKCRwYWdlTnVtYmVyLTEpOyAvLyA1KiAoMi0xKSA9IDYKICAgICAgICAgICAgJHJpZ2h0TGltaXQgPSAkdGhpcy0+cHJvZHVjdHNQZXJQYWdlOyAvLyA1IC0+ICg2LDcsOCw5LDEwKQogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydwcm9kdWN0c09uUGFnZSddID0gJHRoaXMtPm1vZGVsLT5nZXRMaW1pdFByb2R1Y3RzKCRsZWZ0TGltaXQsICRyaWdodExpbWl0KTsKCiAgICB9CgogCgp9CgogPz4K&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;3.9&#8243; hover_enabled=&#8221;0&#8243; body_font_size_tablet=&#8221;51&#8243; body_line_height_tablet=&#8221;2&#8243; header_font_size_tablet=&#8221;51&#8243; header_line_height_tablet=&#8221;2&#8243;]PD9waHAKCmNsYXNzIFByb2R1Y3RzQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXIgewoKICAgIHByaXZhdGUgJHBhZ2VUcGwgPSAiL3ZpZXdzL3Byb2R1Y3RzLnRwbC5waHAiOwogICAgcHJpdmF0ZSAkcHJvZHVjdHNQZXJQYWdlID0gNTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7CiAgICAgICAgJHRoaXMtPm1vZGVsID0gbmV3IFByb2R1Y3RzTW9kZWwoKTsKICAgICAgICAkdGhpcy0+dmlldyA9IG5ldyBWaWV3KCk7CiAgICAgICAgJHRoaXMtPnV0aWxzID0gbmV3IFV0aWxzKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGluZGV4KCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgJGFsbFByb2R1Y3RzID0gY291bnQoJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpKTsKICAgICAgICAkdG90YWxQYWdlcyA9IGNlaWwoJGFsbFByb2R1Y3RzIC8gJHRoaXMtPnByb2R1Y3RzUGVyUGFnZSk7CgogICAgICAgICR0aGlzLT5tYWtlUHJvZHVjdFBhZ2VyKCRhbGxQcm9kdWN0cywgJHRvdGFsUGFnZXMpOwoKICAgICAgICAkcGFnaW5hdGlvbiA9ICR0aGlzLT51dGlscy0+ZHJhd1BhZ2VyKCRhbGxQcm9kdWN0cywgJHRoaXMtPnByb2R1Y3RzUGVyUGFnZSk7CgogICAgICAgICR0aGlzLT5wYWdlRGF0YVsncGFnaW5hdGlvbiddID0gJHBhZ2luYXRpb247CiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWyd0aXRsZSddID0gItCi0L7QstCw0YDRiyI7CiAgICAgICAgLy8gJHRoaXMtPnBhZ2VEYXRhWydwcm9kdWN0c09uUGFnZSddID0gJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpOwoKCiAgICAgICAgJHRoaXMtPnZpZXctPnJlbmRlcigkdGhpcy0+cGFnZVRwbCwgJHRoaXMtPnBhZ2VEYXRhKTsKCiAgICAgICAgaWYoJF9GSUxFUykgewogICAgICAgICAgICBpZigkX0ZJTEVTWydjc3YnXVsndHlwZSddICE9ICd0ZXh0L2NzdicgfHwgJF9GSUxFU1snY3N2J11bJ3R5cGUnXSA9PSAnJykgewogICAgICAgICAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydlcnJvcnMnXSA9ICLQntGI0LjQsdC60LAhINCS0L7Qt9C80L7QttC90L4g0LTQsNC90L3Ri9C5INGE0LDQudC7INC40LzQtdC10YIg0L3QtdC60L7RgNGA0LXQutGC0L3Ri9C5INGE0L7RgNC80LDRgiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZihtb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1snY3N2J11bJ3RtcF9uYW1lJ10sVVBMT0FEX0ZPTERFUi4kX0ZJTEVTWydjc3YnXVsnbmFtZSddKSkgewogICAgICAgICAgICAgICAgICAgICRmaWxlID0gZm9wZW4oVVBMT0FEX0ZPTERFUi4kX0ZJTEVTWydjc3YnXVsnbmFtZSddLCAiciIpOwogICAgICAgICAgICAgICAgICAgICRyb3cgPSAxOwogICAgICAgICAgICAgICAgICAgIHdoaWxlKCRkYXRhID0gZmdldGNzdigkZmlsZSwgMjAwLCAiOyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRyb3cgPT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJvdysrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bW9kZWwtPmFkZEZyb21DU1YoJGRhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZjbG9zZSgkZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQcm9kdWN0KCkgewogICAgICAgIGlmKCEkX1NFU1NJT05bJ3VzZXInXSkgewogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiAvIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmKCFpc3NldCgkX0dFVFsnaWQnXSkpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdElkID0gJF9HRVRbJ2lkJ107CiAgICAgICAgICAgICRwcm9kdWN0SW5mbyA9IGpzb25fZW5jb2RlKCR0aGlzLT5tb2RlbC0+Z2V0UHJvZHVjdEJ5SWQoJHByb2R1Y3RJZCkpOwogICAgICAgICAgICBlY2hvICRwcm9kdWN0SW5mbzsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlUHJvZHVjdCgpIHsKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZighaXNzZXQoJF9QT1NUWydpZCddKSB8fCB0cmltKCRfUE9TVFsnbmFtZSddKSA9PSAnJyB8fCB0cmltKCRfUE9TVFsncHJpY2UnXSkgPT0gJycpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J7RiNC40LHQutCwINC+0LHQvdC+0LLQu9C10L3QuNGPINC00LDQvdC90YvRhSIpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdElkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICAkcHJvZHVjdE5hbWUgPSBzdHJpcF90YWdzKHRyaW0oJF9QT1NUWyduYW1lJ10pKTsKICAgICAgICAgICAgJHByb2R1Y3RQcmljZSA9IHN0cmlwX3RhZ3ModHJpbSgkX1BPU1RbJ3ByaWNlJ10pKTsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gdHJ1ZSwgInRleHQiID0+ICLQmNC90YTQvtGA0LzQsNGG0LjRjyDQviDRgtC+0LLQsNGA0LUg0L7QsdC90L7QstC70LXQvdCwIikpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUHJvZHVjdCgpIHsKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKCiAgICAgICAgaWYoZW1wdHkoJF9QT1NUKSB8fCB0cmltKCRfUE9TVFsncHJvZHVjdE5hbWUnXSkgPT0gJycgfHwgdHJpbSgkX1BPU1RbJ3Byb2R1Y3RQcmljZSddKSA9PSAnJykgewogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiBmYWxzZSwgInRleHQiID0+ICLQndC1INGD0LTQsNC70L7RgdGMINC00L7QsdCw0LLQuNGC0Ywg0YLQvtCy0LDRgCIpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdE5hbWUgPSBzdHJpcF90YWdzKHRyaW0oJF9QT1NUWydwcm9kdWN0TmFtZSddKSk7CiAgICAgICAgICAgICRwcm9kdWN0UHJpY2UgPSBzdHJpcF90YWdzKHRyaW0oJF9QT1NUWydwcm9kdWN0UHJpY2UnXSkpOwogICAgICAgICAgICAkdGhpcy0+bW9kZWwtPmFkZFByb2R1Y3QoJHByb2R1Y3ROYW1lLCAkcHJvZHVjdFByaWNlKTsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gdHJ1ZSwgInRleHQiID0+ICLQndC+0LLRi9C5INGC0L7QstCw0YAg0LTQvtCx0LDQstC70LXQvSIpKTsgCiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVQcm9kdWN0KCkgewogICAgICAgIGlmKCEkX1NFU1NJT05bJ3VzZXInXSkgewogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiAvIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmKGVtcHR5KCRfUE9TVCkgfHwgIWlzc2V0KCRfUE9TVFsnaWQnXSkpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdElkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICBpZigkdGhpcy0+bW9kZWwtPmRlbGV0ZVByb2R1Y3QoJHByb2R1Y3RJZCkpIHsKICAgICAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN1Y2Nlc3MiID0+IHRydWUsICJ0ZXh0IiA9PiAi0KLQvtCy0LDRgCDRg9C00LDQu9C10L0iKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiBmYWxzZSwgInRleHQiID0+ICLQntGI0LjQsdC60LAg0YPQtNCw0LvQtdC90LjRjyDRgtC+0LLQsNGA0LAiKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG1ha2VQcm9kdWN0UGFnZXIoJGFsbFByb2R1Y3RzLCAkdG90YWxQYWdlcykgewoKICAgICAgICBpZighaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pID09IDAgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pID09IDEgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pIDwgMCkgewogICAgICAgICAgICAkcGFnZU51bWJlciA9IDE7CiAgICAgICAgICAgICRsZWZ0TGltaXQgPSAwOwogICAgICAgICAgICAkcmlnaHRMaW1pdCA9ICR0aGlzLT5wcm9kdWN0c1BlclBhZ2U7IC8vIDAtNQogICAgICAgIH0gZWxzZWlmIChpbnR2YWwoJF9HRVRbJ3BhZ2UnXSkgPiAkdG90YWxQYWdlcyB8fCBpbnR2YWwoJF9HRVRbJ3BhZ2UnXSkgPT0gJHRvdGFsUGFnZXMpIHsKICAgICAgICAgICAgJHBhZ2VOdW1iZXIgPSAkdG90YWxQYWdlczsgLy8gMgogICAgICAgICAgICAkbGVmdExpbWl0ID0gJHRoaXMtPnByb2R1Y3RzUGVyUGFnZSAqICgkcGFnZU51bWJlciAtIDEpOyAvLyA1ICogKDItMSkgPSA2CiAgICAgICAgICAgICRyaWdodExpbWl0ID0gJGFsbFByb2R1Y3RzOyAvLyA4CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHBhZ2VOdW1iZXIgPSBpbnR2YWwoJF9HRVRbJ3BhZ2UnXSk7CiAgICAgICAgICAgICRsZWZ0TGltaXQgPSAkdGhpcy0+cHJvZHVjdHNQZXJQYWdlICogKCRwYWdlTnVtYmVyLTEpOyAvLyA1KiAoMi0xKSA9IDYKICAgICAgICAgICAgJHJpZ2h0TGltaXQgPSAkdGhpcy0+cHJvZHVjdHNQZXJQYWdlOyAvLyA1IC0+ICg2LDcsOCw5LDEwKQogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydwcm9kdWN0c09uUGFnZSddID0gJHRoaXMtPm1vZGVsLT5nZXRMaW1pdFByb2R1Y3RzKCRsZWZ0TGltaXQsICRyaWdodExpbWl0KTsKCiAgICB9CgogCgp9CgogPz4K[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson (ProductsModel.php)&#8221; code=&#8221;PD9waHAKCmNsYXNzIFByb2R1Y3RzTW9kZWwgZXh0ZW5kcyBNb2RlbCB7CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBbGxQcm9kdWN0cygpIHsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAkc3FsID0gIlNFTEVDVCAqIEZST00gcHJvZHVjdHMiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgd2hpbGUoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgICAgICAgICAkcmVzdWx0WyRyb3dbJ2lkJ11dID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldExpbWl0UHJvZHVjdHMoJGxlZnRMaW1pdCwgJHJpZ2h0TGltaXQpIHsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAkc3FsID0gIlNFTEVDVCAqIEZST00gcHJvZHVjdHMgTElNSVQgOmxlZnRMaW1pdCwgOnJpZ2h0TGltaXQiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpsZWZ0TGltaXQiLCAkbGVmdExpbWl0LCBQRE86OlBBUkFNX0lOVCk7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOnJpZ2h0TGltaXQiLCAkcmlnaHRMaW1pdCwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgd2hpbGUoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgICAgICAgICAkcmVzdWx0WyRyb3dbJ2lkJ11dID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRGcm9tQ1NWKCRkYXRhKSB7CiAgICAgICAgJHNxbCA9ICJJTlNFUlQgSU5UTyBwcm9kdWN0cyhuYW1lLCBwcmljZSkgVkFMVUVTKDpuYW1lLCA6cHJpY2UpIjsKCiAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHNxbCk7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOm5hbWUiLCAkZGF0YVswXSwgUERPOjpQQVJBTV9TVFIpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpwcmljZSIsICRkYXRhWzFdLCBQRE86OlBBUkFNX0lOVCk7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHJvZHVjdEJ5SWQoJGlkKSB7CiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgKiBGUk9NIHByb2R1Y3RzIFdIRVJFIGlkID0gOmlkIjsKICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkaWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgICRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmVQcm9kdWN0SW5mbygkaWQsICRuYW1lLCAkcHJpY2UpIHsKICAgICAgICAkc3FsID0gIlVQREFURSBwcm9kdWN0cwogICAgICAgICAgICAgICAgU0VUIHByaWNlID0gOnByaWNlLCBuYW1lID0gOm5hbWUKICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gOmlkCiAgICAgICAgICAgICAgICAiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpwcmljZSIsICRwcmljZSwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpuYW1lIiwgJG5hbWUsIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkaWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUHJvZHVjdCgkcHJvZHVjdE5hbWUsICRwcm9kdWN0UHJpY2UpIHsKICAgICAgICAkc3FsID0gIklOU0VSVCBJTlRPIHByb2R1Y3RzKG5hbWUsIHByaWNlKQogICAgICAgICAgICAgICAgVkFMVUVTKDpwcm9kdWN0TmFtZSwgOnByb2R1Y3RQcmljZSkKICAgICAgICAgICAgICAgICI7CiAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHNxbCk7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOnByb2R1Y3ROYW1lIiwgJHByb2R1Y3ROYW1lLCBQRE86OlBBUkFNX1NUUik7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOnByb2R1Y3RQcmljZSIsICRwcm9kdWN0UHJpY2UsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVQcm9kdWN0KCRpZCkgewogICAgICAgICRzcWwgPSAiREVMRVRFIEZST00gcHJvZHVjdHMgV0hFUkUgaWQgPSA6aWQiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjppZCIsICRpZCwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgJGNvdW50ID0gJHN0bXQtPnJvd0NvdW50KCk7CiAgICAgICAgaWYoJGNvdW50ID4gMCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgIH0KCn0KCiA\/Pgo=&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;3.9&#8243; body_font_size_tablet=&#8221;51&#8243; body_line_height_tablet=&#8221;2&#8243; header_font_size_tablet=&#8221;51&#8243; header_line_height_tablet=&#8221;2&#8243;]PD9waHAKCmNsYXNzIFByb2R1Y3RzTW9kZWwgZXh0ZW5kcyBNb2RlbCB7CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBbGxQcm9kdWN0cygpIHsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAkc3FsID0gIlNFTEVDVCAqIEZST00gcHJvZHVjdHMiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgd2hpbGUoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgICAgICAgICAkcmVzdWx0WyRyb3dbJ2lkJ11dID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldExpbWl0UHJvZHVjdHMoJGxlZnRMaW1pdCwgJHJpZ2h0TGltaXQpIHsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAkc3FsID0gIlNFTEVDVCAqIEZST00gcHJvZHVjdHMgTElNSVQgOmxlZnRMaW1pdCwgOnJpZ2h0TGltaXQiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpsZWZ0TGltaXQiLCAkbGVmdExpbWl0LCBQRE86OlBBUkFNX0lOVCk7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOnJpZ2h0TGltaXQiLCAkcmlnaHRMaW1pdCwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgd2hpbGUoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgICAgICAgICAkcmVzdWx0WyRyb3dbJ2lkJ11dID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRGcm9tQ1NWKCRkYXRhKSB7CiAgICAgICAgJHNxbCA9ICJJTlNFUlQgSU5UTyBwcm9kdWN0cyhuYW1lLCBwcmljZSkgVkFMVUVTKDpuYW1lLCA6cHJpY2UpIjsKCiAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHNxbCk7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOm5hbWUiLCAkZGF0YVswXSwgUERPOjpQQVJBTV9TVFIpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpwcmljZSIsICRkYXRhWzFdLCBQRE86OlBBUkFNX0lOVCk7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHJvZHVjdEJ5SWQoJGlkKSB7CiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgKiBGUk9NIHByb2R1Y3RzIFdIRVJFIGlkID0gOmlkIjsKICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkaWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgICRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmVQcm9kdWN0SW5mbygkaWQsICRuYW1lLCAkcHJpY2UpIHsKICAgICAgICAkc3FsID0gIlVQREFURSBwcm9kdWN0cwogICAgICAgICAgICAgICAgU0VUIHByaWNlID0gOnByaWNlLCBuYW1lID0gOm5hbWUKICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gOmlkCiAgICAgICAgICAgICAgICAiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpwcmljZSIsICRwcmljZSwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpuYW1lIiwgJG5hbWUsIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkaWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUHJvZHVjdCgkcHJvZHVjdE5hbWUsICRwcm9kdWN0UHJpY2UpIHsKICAgICAgICAkc3FsID0gIklOU0VSVCBJTlRPIHByb2R1Y3RzKG5hbWUsIHByaWNlKQogICAgICAgICAgICAgICAgVkFMVUVTKDpwcm9kdWN0TmFtZSwgOnByb2R1Y3RQcmljZSkKICAgICAgICAgICAgICAgICI7CiAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHNxbCk7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOnByb2R1Y3ROYW1lIiwgJHByb2R1Y3ROYW1lLCBQRE86OlBBUkFNX1NUUik7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOnByb2R1Y3RQcmljZSIsICRwcm9kdWN0UHJpY2UsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVQcm9kdWN0KCRpZCkgewogICAgICAgICRzcWwgPSAiREVMRVRFIEZST00gcHJvZHVjdHMgV0hFUkUgaWQgPSA6aWQiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjppZCIsICRpZCwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgJGNvdW50ID0gJHN0bXQtPnJvd0NvdW50KCk7CiAgICAgICAgaWYoJGNvdW50ID4gMCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgIH0KCn0KCiA\/Pgo=[\/et_pb_dmb_code_snippet][et_pb_comments _builder_version=&#8221;4.4.3&#8243; custom_margin=&#8221;30px||||false|false&#8221; hover_enabled=&#8221;0&#8243;][\/et_pb_comments][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I am fulfil request from one of my subscribers, who asked me to make pagination. For this purpose we need to use SQL query with LIMIT. Process is described in details in video. PD9waHAKLyoqCiogMS3QsNGPIC0gNSDQv9GA0L7QtNGD0LrRgtC+0LIKKiAyLdCw0Y8gLSDRgSA2INC\/0L4gMTAg0L\/RgNC+0LTRg9C60YIgCiogMy3RjyAtINGBIDExINC\/0L4gMTUg0L\/RgNC+0LTRg9C60YIgCiogNSooMi0xKSsxID0gNgoqIDUqKDMtMSkrMSA9IDExCiogNSooNC0xKSsxID0gMTYKKiBMSU1JVCAkcGVyUGFnZSooJHBhZ2UtMSkrMSwgJGl0ZW1zQ291bnQKKiAxNSAtPiAzCiogMSAtIDAtNQoqIDIgLSA2LSAxMAoqIDMgLSAxMS0gMTUKKi8KCgoKY2xhc3MgVXRpbHMgewoKCglwdWJsaWMgZnVuY3Rpb24gZHJhd1BhZ2VyKCR0b3RhbEl0ZW1zLCAkcGVyUGFnZSkgewoKCQkkcGFnZXMgPSBjZWlsKCR0b3RhbEl0ZW1zIC8gJHBlclBhZ2UpOwoKCQlpZighaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pID09IDApIHsKCQkJJHBhZ2UgPSAxOwoJCX0gZWxzZSBpZiAoaW50dmFsKCRfR0VUWydwYWdlJ10pID4gJHRvdGFsSXRlbXMpIHsKCQkJJHBhZ2UgPSAkcGFnZXM7CgkJfSBlbHNlIHsKCQkJJHBhZ2UgPSBpbnR2YWwoJF9HRVRbJ3BhZ2UnXSk7CgkJfQoKCQkkcGFnZXIgPSAgIjxuYXYgYXJpYS1sYWJlbD0nUGFnZSBuYXZpZ2F0aW9uJz4iOwogICAgICAgICRwYWdlciAuPSAiPHVsIGNsYXNzPSdwYWdpbmF0aW9uJz4iOwogICAgICAgICRwYWdlciAuPSAiPGxpPjxhIGhyZWY9Jy9wcm9kdWN0cz9wYWdlPTEnIGFyaWEtbGFiZWw9J1ByZXZpb3VzJz48c3BhbiBhcmlhLWhpZGRlbj0ndHJ1ZSc+wqs8L3NwYW4+INCd0LDRh9Cw0LvQvjwvYT48L2xpPiI7CiAgICAgICAgZm9yKCRpPTI7ICRpPD0kcGFnZXMtMTsgJGkrKykgewogICAgICAgICAgICAkcGFnZXIgLj0gIjxsaT48YSBocmVmPScvcHJvZHVjdHM\/cGFnZT0iLiAkaS4iJz4iIC4gJGkgLiI8L2E+PC9saT4iOwogICAgICAgIH0KICAgICAgICAkcGFnZXIgLj0gIjxsaT48YSBocmVmPScvcHJvZHVjdHM\/cGFnZT0iLiAkcGFnZXMgLiInIGFyaWEtbGFiZWw9J05leHQnPtCa0L7QvdC10YYgPHNwYW4gYXJpYS1oaWRkZW49J3RydWUnPsK7PC9zcGFuPjwvYT48L2xpPiI7CiAgICAgICAgJHBhZ2VyIC49ICI8L3VsPiI7CiAKICAgICAgICByZXR1cm4gJHBhZ2VyOwoKCX0KCgp9PD9waHAKCnNlc3Npb25fc3RhcnQoKTsKCiRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gPSAiL3Zhci93d3cvdTAwMTY0OTUvZGF0YS93d3cvY2FiaW5ldC5rYW1pbC1hYnphbG92LnJ1IjsKZGVmaW5lKCJST09UIiwgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSk7CmRlZmluZSgiQ09OVFJPTExFUl9QQVRIIiwgUk9PVC4gIi9jb250cm9sbGVycy8iKTsKZGVmaW5lKCJNT0RFTF9QQVRIIiwgUk9PVC4gIi9tb2RlbHMvIik7CmRlZmluZSgiVklFV19QQVRIIiwgUk9PVC4gIi92aWV3cy8iKTsKZGVmaW5lKCJVUExPQURfRElSIiwgUk9PVC4gIi91cGxvYWRzLyIpOwpkZWZpbmUoIlVUSUxTIiwgUk9PVC4gIi91dGlscy8iKTsKCnJlcXVpcmVfb25jZSgiZGIucGhwIik7CnJlcXVpcmVfb25jZSgicm91dGUucGhwIik7CnJlcXVpcmVfb25jZSBVVElMUyAuICJVdGlscy5waHAiOwpyZXF1aXJlX29uY2UgTU9ERUxfUEFUSC4gJ01vZGVsLnBocCc7CnJlcXVpcmVfb25jZSBWSUVXX1BBVEguICdWaWV3LnBocCc7CnJlcXVpcmVfb25jZSBDT05UUk9MTEVSX1BBVEguICdDb250cm9sbGVyLnBocCc7CgoKUm91dGluZzo6YnVpbGRSb3V0ZSgpOw==PD9waHAKCmNsYXNzIFByb2R1Y3RzQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXIgewoKICAgIHByaXZhdGUgJHBhZ2VUcGwgPSAiL3ZpZXdzL3Byb2R1Y3RzLnRwbC5waHAiOwogICAgcHJpdmF0ZSAkcHJvZHVjdHNQZXJQYWdlID0gNTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7CiAgICAgICAgJHRoaXMtPm1vZGVsID0gbmV3IFByb2R1Y3RzTW9kZWwoKTsKICAgICAgICAkdGhpcy0+dmlldyA9IG5ldyBWaWV3KCk7CiAgICAgICAgJHRoaXMtPnV0aWxzID0gbmV3IFV0aWxzKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGluZGV4KCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgJGFsbFByb2R1Y3RzID0gY291bnQoJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpKTsKICAgICAgICAkdG90YWxQYWdlcyA9IGNlaWwoJGFsbFByb2R1Y3RzIC8gJHRoaXMtPnByb2R1Y3RzUGVyUGFnZSk7CgogICAgICAgICR0aGlzLT5tYWtlUHJvZHVjdFBhZ2VyKCRhbGxQcm9kdWN0cywgJHRvdGFsUGFnZXMpOwoKICAgICAgICAkcGFnaW5hdGlvbiA9ICR0aGlzLT51dGlscy0+ZHJhd1BhZ2VyKCRhbGxQcm9kdWN0cywgJHRoaXMtPnByb2R1Y3RzUGVyUGFnZSk7CgogICAgICAgICR0aGlzLT5wYWdlRGF0YVsncGFnaW5hdGlvbiddID0gJHBhZ2luYXRpb247CiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWyd0aXRsZSddID0gItCi0L7QstCw0YDRiyI7CiAgICAgICAgLy8gJHRoaXMtPnBhZ2VEYXRhWydwcm9kdWN0c09uUGFnZSddID0gJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpOwoKCiAgICAgICAgJHRoaXMtPnZpZXctPnJlbmRlcigkdGhpcy0+cGFnZVRwbCwgJHRoaXMtPnBhZ2VEYXRhKTsKCiAgICAgICAgaWYoJF9GSUxFUykgewogICAgICAgICAgICBpZigkX0ZJTEVTWydjc3YnXVsndHlwZSddICE9ICd0ZXh0L2NzdicgfHwgJF9GSUxFU1snY3N2J11bJ3R5cGUnXSA9PSAnJykgewogICAgICAgICAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydlcnJvcnMnXSA9ICLQntGI0LjQsdC60LAhINCS0L7Qt9C80L7QttC90L4g0LTQsNC90L3Ri9C5INGE0LDQudC7INC40LzQtdC10YIg0L3QtdC60L7RgNGA0LXQutGC0L3Ri9C5INGE0L7RgNC80LDRgiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZihtb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1snY3N2J11bJ3RtcF9uYW1lJ10sVVBMT0FEX0ZPTERFUi4kX0ZJTEVTWydjc3YnXVsnbmFtZSddKSkgewogICAgICAgICAgICAgICAgICAgICRmaWxlID0gZm9wZW4oVVBMT0FEX0ZPTERFUi4kX0ZJTEVTWydjc3YnXVsnbmFtZSddLCAiciIpOwogICAgICAgICAgICAgICAgICAgICRyb3cgPSAxOwogICAgICAgICAgICAgICAgICAgIHdoaWxlKCRkYXRhID0gZmdldGNzdigkZmlsZSwgMjAwLCAiOyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRyb3cgPT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJvdysrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bW9kZWwtPmFkZEZyb21DU1YoJGRhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZjbG9zZSgkZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQcm9kdWN0KCkgewogICAgICAgIGlmKCEkX1NFU1NJT05bJ3VzZXInXSkgewogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiAvIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmKCFpc3NldCgkX0dFVFsnaWQnXSkpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdElkID0gJF9HRVRbJ2lkJ107CiAgICAgICAgICAgICRwcm9kdWN0SW5mbyA9IGpzb25fZW5jb2RlKCR0aGlzLT5tb2RlbC0+Z2V0UHJvZHVjdEJ5SWQoJHByb2R1Y3RJZCkpOwogICAgICAgICAgICBlY2hvICRwcm9kdWN0SW5mbzsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlUHJvZHVjdCgpIHsKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZighaXNzZXQoJF9QT1NUWydpZCddKSB8fCB0cmltKCRfUE9TVFsnbmFtZSddKSA9PSAnJyB8fCB0cmltKCRfUE9TVFsncHJpY2UnXSkgPT0gJycpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J7RiNC40LHQutCwINC+0LHQvdC+0LLQu9C10L3QuNGPINC00LDQvdC90YvRhSIpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdElkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICAkcHJvZHVjdE5hbWUgPSBzdHJpcF90YWdzKHRyaW0oJF9QT1NUWyduYW1lJ10pKTsKICAgICAgICAgICAgJHByb2R1Y3RQcmljZSA9IHN0cmlwX3RhZ3ModHJpbSgkX1BPU1RbJ3ByaWNlJ10pKTsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gdHJ1ZSwgInRleHQiID0+ICLQmNC90YTQvtGA0LzQsNGG0LjRjyDQviDRgtC+0LLQsNGA0LUg0L7QsdC90L7QstC70LXQvdCwIikpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUHJvZHVjdCgpIHsKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKCiAgICAgICAgaWYoZW1wdHkoJF9QT1NUKSB8fCB0cmltKCRfUE9TVFsncHJvZHVjdE5hbWUnXSkgPT0gJycgfHwgdHJpbSgkX1BPU1RbJ3Byb2R1Y3RQcmljZSddKSA9PSAnJykgewogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiBmYWxzZSwgInRleHQiID0+ICLQndC1INGD0LTQsNC70L7RgdGMINC00L7QsdCw0LLQuNGC0Ywg0YLQvtCy0LDRgCIpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdE5hbWUgPSBzdHJpcF90YWdzKHRyaW0oJF9QT1NUWydwcm9kdWN0TmFtZSddKSk7CiAgICAgICAgICAgICRwcm9kdWN0UHJpY2UgPSBzdHJpcF90YWdzKHRyaW0oJF9QT1NUWydwcm9kdWN0UHJpY2UnXSkpOwogICAgICAgICAgICAkdGhpcy0+bW9kZWwtPmFkZFByb2R1Y3QoJHByb2R1Y3ROYW1lLCAkcHJvZHVjdFByaWNlKTsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gdHJ1ZSwgInRleHQiID0+ICLQndC+0LLRi9C5INGC0L7QstCw0YAg0LTQvtCx0LDQstC70LXQvSIpKTsgCiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVQcm9kdWN0KCkgewogICAgICAgIGlmKCEkX1NFU1NJT05bJ3VzZXInXSkgewogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiAvIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmKGVtcHR5KCRfUE9TVCkgfHwgIWlzc2V0KCRfUE9TVFsnaWQnXSkpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJvZHVjdElkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICBpZigkdGhpcy0+bW9kZWwtPmRlbGV0ZVByb2R1Y3QoJHByb2R1Y3RJZCkpIHsKICAgICAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN1Y2Nlc3MiID0+IHRydWUsICJ0ZXh0IiA9PiAi0KLQvtCy0LDRgCDRg9C00LDQu9C10L0iKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiBmYWxzZSwgInRleHQiID0+ICLQntGI0LjQsdC60LAg0YPQtNCw0LvQtdC90LjRjyDRgtC+0LLQsNGA0LAiKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG1ha2VQcm9kdWN0UGFnZXIoJGFsbFByb2R1Y3RzLCAkdG90YWxQYWdlcykgewoKICAgICAgICBpZighaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pID09IDAgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pID09IDEgfHwgaW50dmFsKCRfR0VUWydwYWdlJ10pIDwgMCkgewogICAgICAgICAgICAkcGFnZU51bWJlciA9IDE7CiAgICAgICAgICAgICRsZWZ0TGltaXQgPSAwOwogICAgICAgICAgICAkcmlnaHRMaW1pdCA9ICR0aGlzLT5wcm9kdWN0c1BlclBhZ2U7IC8vIDAtNQogICAgICAgIH0gZWxzZWlmIChpbnR2YWwoJF9HRVRbJ3BhZ2UnXSkgPiAkdG90YWxQYWdlcyB8fCBpbnR2YWwoJF9HRVRbJ3BhZ2UnXSkgPT0gJHRvdGFsUGFnZXMpIHsKICAgICAgICAgICAgJHBhZ2VOdW1iZXIgPSAkdG90YWxQYWdlczsgLy8gMgogICAgICAgICAgICAkbGVmdExpbWl0ID0gJHRoaXMtPnByb2R1Y3RzUGVyUGFnZSAqICgkcGFnZU51bWJlciAtIDEpOyAvLyA1ICogKDItMSkgPSA2CiAgICAgICAgICAgICRyaWdodExpbWl0ID0gJGFsbFByb2R1Y3RzOyAvLyA4CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHBhZ2VOdW1iZXIgPSBpbnR2YWwoJF9HRVRbJ3BhZ2UnXSk7CiAgICAgICAgICAgICRsZWZ0TGltaXQgPSAkdGhpcy0+cHJvZHVjdHNQZXJQYWdlICogKCRwYWdlTnVtYmVyLTEpOyAvLyA1KiAoMi0xKSA9IDYKICAgICAgICAgICAgJHJpZ2h0TGltaXQgPSAkdGhpcy0+cHJvZHVjdHNQZXJQYWdlOyAvLyA1IC0+ICg2LDcsOCw5LDEwKQogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydwcm9kdWN0c09uUGFnZSddID0gJHRoaXMtPm1vZGVsLT5nZXRMaW1pdFByb2R1Y3RzKCRsZWZ0TGltaXQsICRyaWdodExpbWl0KTsKCiAgICB9CgogCgp9CgogPz4KPD9waHAKCmNsYXNzIFByb2R1Y3RzTW9kZWwgZXh0ZW5kcyBNb2RlbCB7CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBbGxQcm9kdWN0cygpIHsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAkc3FsID0gIlNFTEVDVCAqIEZST00gcHJvZHVjdHMiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgd2hpbGUoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgICAgICAgICAkcmVzdWx0WyRyb3dbJ2lkJ11dID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldExpbWl0UHJvZHVjdHMoJGxlZnRMaW1pdCwgJHJpZ2h0TGltaXQpIHsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAkc3FsID0gIlNFTEVDVCAqIEZST00gcHJvZHVjdHMgTElNSVQgOmxlZnRMaW1pdCwgOnJpZ2h0TGltaXQiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpsZWZ0TGltaXQiLCAkbGVmdExpbWl0LCBQRE86OlBBUkFNX0lOVCk7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOnJpZ2h0TGltaXQiLCAkcmlnaHRMaW1pdCwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgd2hpbGUoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgICAgICAgICAkcmVzdWx0WyRyb3dbJ2lkJ11dID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRGcm9tQ1NWKCRkYXRhKSB7CiAgICAgICAgJHNxbCA9ICJJTlNFUlQgSU5UTyBwcm9kdWN0cyhuYW1lLCBwcmljZSkgVkFMVUVTKDpuYW1lLCA6cHJpY2UpIjsKCiAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHNxbCk7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOm5hbWUiLCAkZGF0YVswXSwgUERPOjpQQVJBTV9TVFIpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpwcmljZSIsICRkYXRhWzFdLCBQRE86OlBBUkFNX0lOVCk7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHJvZHVjdEJ5SWQoJGlkKSB7CiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgKiBGUk9NIHByb2R1Y3RzIFdIRVJFIGlkID0gOmlkIjsKICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkaWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgICRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmVQcm9kdWN0SW5mbygkaWQsICRuYW1lLCAkcHJpY2UpIHsKICAgICAgICAkc3FsID0gIlVQREFURSBwcm9kdWN0cwogICAgICAgICAgICAgICAgU0VUIHByaWNlID0gOnByaWNlLCBuYW1lID0gOm5hbWUKICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gOmlkCiAgICAgICAgICAgICAgICAiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpwcmljZSIsICRwcmljZSwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpuYW1lIiwgJG5hbWUsIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkaWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUHJvZHVjdCgkcHJvZHVjdE5hbWUsICRwcm9kdWN0UHJpY2UpIHsKICAgICAgICAkc3FsID0gIklOU0VSVCBJTlRPIHByb2R1Y3RzKG5hbWUsIHByaWNlKQogICAgICAgICAgICAgICAgVkFMVUVTKDpwcm9kdWN0TmFtZSwgOnByb2R1Y3RQcmljZSkKICAgICAgICAgICAgICAgICI7CiAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHNxbCk7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOnByb2R1Y3ROYW1lIiwgJHByb2R1Y3ROYW1lLCBQRE86OlBBUkFNX1NUUik7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOnByb2R1Y3RQcmljZSIsICRwcm9kdWN0UHJpY2UsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVQcm9kdWN0KCRpZCkgewogICAgICAgICRzcWwgPSAiREVMRVRFIEZST00gcHJvZHVjdHMgV0hFUkUgaWQgPSA6aWQiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjppZCIsICRpZCwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgJGNvdW50ID0gJHN0bXQtPnJvd0NvdW50KCk7CiAgICAgICAgaWYoJGNvdW50ID4gMCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgIH0KCn0KCiA\/Pgo=<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[274,219],"tags":[],"class_list":["post-29649","post","type-post","status-publish","format-standard","hentry","category-phpmysql","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create PHP MVC app. Create pagination - Kamil Abzalov&#039;s blog<\/title>\n<meta name=\"description\" content=\"Today we will create very simple pagination with php and MySQL for our application\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create PHP MVC app. Create pagination - Kamil Abzalov&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"Today we will create very simple pagination with php and MySQL for our application\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/kamabzalov\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-07T19:35:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-11T09:07:57+00:00\" \/>\n<meta name=\"author\" content=\"Kamil&#039; Abzalov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Create PHP MVC app. Create pagination\" \/>\n<meta name=\"twitter:description\" content=\"Today we will create very simple pagination with php and MySQL for our application\" \/>\n<meta name=\"twitter:creator\" content=\"@kamabzalov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamil&#039; Abzalov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-make-pagination\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-make-pagination\\\/\"},\"author\":{\"name\":\"Kamil' Abzalov\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"headline\":\"Create PHP MVC app. Create pagination\",\"datePublished\":\"2018-07-07T19:35:47+00:00\",\"dateModified\":\"2020-04-11T09:07:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-make-pagination\\\/\"},\"wordCount\":2820,\"commentCount\":0,\"articleSection\":[\"PHP+MySQL\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-make-pagination\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-make-pagination\\\/\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-make-pagination\\\/\",\"name\":\"Create PHP MVC app. Create pagination - Kamil Abzalov's blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\"},\"datePublished\":\"2018-07-07T19:35:47+00:00\",\"dateModified\":\"2020-04-11T09:07:57+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"description\":\"Today we will create very simple pagination with php and MySQL for our application\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-make-pagination\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-make-pagination\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-make-pagination\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\\\/\\\/kamil-abzalov.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create PHP MVC app. Create pagination\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"name\":\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kamil-abzalov.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\",\"name\":\"Kamil' Abzalov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"caption\":\"Kamil' Abzalov\"},\"sameAs\":[\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/kamabzalov\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kamabzalov\",\"https:\\\/\\\/x.com\\\/kamabzalov\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/kamabzalov\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create PHP MVC app. Create pagination - Kamil Abzalov's blog","description":"Today we will create very simple pagination with php and MySQL for our application","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/","og_locale":"en_US","og_type":"article","og_title":"Create PHP MVC app. Create pagination - Kamil Abzalov's blog","og_description":"Today we will create very simple pagination with php and MySQL for our application","og_url":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/","og_site_name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","article_author":"https:\/\/www.facebook.com\/kamabzalov","article_published_time":"2018-07-07T19:35:47+00:00","article_modified_time":"2020-04-11T09:07:57+00:00","author":"Kamil' Abzalov","twitter_card":"summary_large_image","twitter_title":"Create PHP MVC app. Create pagination","twitter_description":"Today we will create very simple pagination with php and MySQL for our application","twitter_creator":"@kamabzalov","twitter_misc":{"Written by":"Kamil' Abzalov","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/#article","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/"},"author":{"name":"Kamil' Abzalov","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"headline":"Create PHP MVC app. Create pagination","datePublished":"2018-07-07T19:35:47+00:00","dateModified":"2020-04-11T09:07:57+00:00","mainEntityOfPage":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/"},"wordCount":2820,"commentCount":0,"articleSection":["PHP+MySQL","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/","url":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/","name":"Create PHP MVC app. Create pagination - Kamil Abzalov's blog","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/#website"},"datePublished":"2018-07-07T19:35:47+00:00","dateModified":"2020-04-11T09:07:57+00:00","author":{"@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"description":"Today we will create very simple pagination with php and MySQL for our application","breadcrumb":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-make-pagination\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/kamil-abzalov.com\/en\/"},{"@type":"ListItem","position":2,"name":"Create PHP MVC app. Create pagination"}]},{"@type":"WebSite","@id":"https:\/\/kamil-abzalov.com\/#website","url":"https:\/\/kamil-abzalov.com\/","name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kamil-abzalov.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600","name":"Kamil' Abzalov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","caption":"Kamil' Abzalov"},"sameAs":["https:\/\/kamil-abzalov.com\/","https:\/\/www.facebook.com\/kamabzalov","https:\/\/www.linkedin.com\/in\/kamabzalov","https:\/\/x.com\/kamabzalov","https:\/\/www.youtube.com\/user\/kamabzalov"]}]}},"_links":{"self":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/29649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/comments?post=29649"}],"version-history":[{"count":6,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/29649\/revisions"}],"predecessor-version":[{"id":32024,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/29649\/revisions\/32024"}],"wp:attachment":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/media?parent=29649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/categories?post=29649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/tags?post=29649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}