Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 18.04.2016
Сообщений: 78

Как сделать пагинацию страниц

16.07.2018, 13:19. Показов 2073. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня проблемы с паджинейшн, файлы с категории выводит, но на другие страницы не переходит.
Так, всё начинается с меню
menu.php
PHP
1
2
3
4
<?php
                $article = mysqli_query($connection, "SELECT * FROM  article_categories ac
                        WHERE ac.enable = '1'
            AND ac.id IN (8,9,10,11,12,13)"); ?>
PHP/HTML
1
2
3
4
5
<?php while( $art = mysqli_fetch_assoc($article))
                {
            ?>
        <li><a href="/page.php?categories=<?php echo $art['id']; ?> "> <?php echo $art['categorie']?></a></li><?php } ?>
    </ul> </li>
После страница page, я пытаюсь прировнять a.categories ГЭТ-у.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<? php if (isset($_GET['number'])){
    $page = $_GET['number'];
} else {
    $page = 1;
}
$limit = 1;
$number = ($page * $limit) - $limit;
$res_count = mysqli_query($connection, "SELECT COUNT(*) FROM article a
                 WHERE a.categories = ".(int) $_GET['categories']);
$row = mysqli_fetch_row($res_count);
$total = $row[0];
$str_pag = ceil($total / $limit);
$query = mysqli_query($connection, "SELECT * FROM article a
        WHERE a.categories = ".(int) $_GET['categories']."
         ORDER BY a.id DESC LIMIT $number, $limit ");
 
    
    
            
?>
И вот сам вывод пагинации, при переходе ничего не происходит, но в ссылке ?number меняется
PHP
1
2
3
<?php for ($i = 1; $i <=$str_pag; $i++){
    echo " <a href=page.php?categories=".(int) $_GET['categories']."?number=".$i.">".$i."</a> ";
} ?>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2018, 13:19
Ответы с готовыми решениями:

Безопасность при генерации страниц! как сделать?
Привет всем ... в общем такой вопрос по безопасности ... у меня user.php создаёт страницу с данными из mysql опираясь по id вот код ...

Как сделать редактор страниц для своего сайта
Нужен редактор для своих страниц, чтоб не менять их каждый раз через фтп

Как сделать пагинацию
Как сделать так чтоб выводились на страницы только 50 статей, потом при нажатие на кнопку Показать больше выводились еще 50 статей и так...

5
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
16.07.2018, 13:48
Лучший ответ Сообщение было отмечено Whoami-lammer как решение

Решение

&number=
1
1 / 1 / 0
Регистрация: 18.04.2016
Сообщений: 78
16.07.2018, 16:02  [ТС]
Phantom-84, Спасибо большое за помощь. Еще бы хотел узнать, как можно обезопасить код от sql инъекций?
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
16.07.2018, 19:28
(int) есть, уже хорошо. Хотя конечно бесконечные дубли и конструкции на подобии вашего ветвления с установкой $page сильно смущают.

Я не берусь ответить на ваш вопрос, уж слишком он обширный. Начните с изучения "подготавливаемых запросов", подстановки в запросы не искажающих эти запросы данных, валидации входных данных. Также изучайте исходный код тех, кто профессионально занимается веб-разработкой.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
17.07.2018, 14:51
Цитата Сообщение от Phantom-84 Посмотреть сообщение
(int) есть, уже хорошо.
Есть, да не везде:
Цитата Сообщение от Whoami-lammer Посмотреть сообщение
ORDER BY a.id DESC LIMIT $number, $limit ");
Соглашусь с сообщением выше, попробуйте писать параметризованные запросы — в большинстве случаев этого будет достаточно.

Следующий шаг — добавление слоя абстракции между кодом и БД, взаимодействие только через классы (которые внутри генерят SQL).
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
18.07.2018, 09:19
Тогда уж у первоисточника нужно исправлять:
$page = $_GET['number'];
Хотя могут подложить ненатуральное целое. Не так критично, но все равно неприятно. Проверки $page сверху перед основным запросом тоже нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.07.2018, 09:19
Помогаю со студенческими работами здесь

Как сделать пагинацию
Есть контроллер типа public ViewResult Clients() { var Clientdatas = db.Clientdatas; return...

Как сделать пагинацию
Помогите пожалуйста сделать пагинацию не получается , вот был старый вариант , но пришлось поменять код и изменить пагинацию , что бы она...

DataGridView Как сделать пагинацию?
Привет, подскажите как можно реализовать пагинацию что бы она работала в datagridview, может есть готовые решения

DataGridView. Как сделать пагинацию?
Привет, подскажите как сделать пагинацию для datagridview

Как сделать пагинацию таблицы?
есть таблица, но она долго грузиться. Как разбить таблицу на части, чтоб грузилось,например, по 10 елементов.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru