Недвижимость 02.05.2024
Всем привет!
Примерно с 2008 года моя мечта была сделать веб портал по недвижимости. Раньше я делал этот портал на ASP NET 2.0, а потом на ASP NET 3.5. Я попытаюсь сделать веб портал по недвижимости на PHP7. Короче погнали!
В ASP NET уже есть готовые компоненты. Начнём с пагинатора. У меня был уже некий опыт, я в начале 2000х гг. помогал сестре создать один проект в Казахстане. Мне сестра в Алматы подарила книгу по PHP, и я занимался пагинатором. Чтобы получить количество страниц, нужно количество записей в БД разделить на количество записей в странице + остаток. Так-же я буду в именах переменных использовать венгерскую нотацию см. https://ru.wikipedia.org/wiki/Венг�%..., где $str_ - для строк, $int_ - для чисел, $arr_ - для массивов, $obj_ - для объектов (ООП). В 2000х гг. я делал так:
$int_pages = $int_records_count / $int_records_per_page; // Получаем количество страниц // Если в количестве записей поделёно на количество записей на странице есть остаток то + 1 страница if($int_records_count % $int_records_per_page > 0) $int_pages++;
Давайте именно так и сделаем:
// Функция генерирует пагинатор, и отображает в браузере // $str_url - указывается url или имя файла // int_records_count - количество найденых записей из БД // $int_records_per_page - количество записей на одной странице // $int_sel - какая страница выделина function paginator_show($str_url, $int_records_count, $int_records_per_page, $int_sel) { $int_pages = $int_records_count / $int_records_per_page; // Получаем количество страниц // Если в количестве записей поделёно на количество записей на странице есть остаток то + 1 страница if($int_records_count % $int_records_per_page > 0) $int_pages++; // Рисуем количество страниц for($int_i=1; $int_i<$int_pages; $int_i++) { // Если текущая выделеная страница if($int_i == $int_sel) echo '<b>[ ' . $int_i . ' ]</b> '; // То рисуем скобки [ ] else echo '<a href=' . $str_url . '?page=' . $int_i . '>' . $int_i . '</a> '; // Иначе добавляем страницу } }
Для тестирования:
if(isset($_GET['page'])) $int_select_page = $_GET['page']; else $int_select_page = 1; paginator_show('paginator.php', 100, 10, $int_select_page);
Результат работы нашего кода: