X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Постраничная навигация
macbeth9
macbeth9
Topic Starter сообщение 3.10.2013, 21:54; Ответить: macbeth9
Сообщение #1


Привет всем! Есть проблемка с постраничной навигацией.

И так.

Я делаю запрос к базе
SELECT * FROM `posts` WHERE 1=1
и считаю отдельно и записи
SELECT COUNT(*) FROM `posts` WHERE 1=1


Далее по полученному кол-ву записей мы расчитываем оффсет

[PHP]
$temp = $count_posts;
$num = "50";
$page = intval($_GET['page']);
$total = (($temp - 1) / $num) + 1;
$total = intval($total);
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
[/PHP]

в итоге добавляем к запросу
SELECT * FROM `posts` WHERE 1=1 LIMIT $start, $num


Весь резльтат получаем в массиве $rows. Так все отлично. НО в это же время мы получаем результат без запрос к базе, а просто из вне. Тоже записи только другие и добавляем их в уже полученный массив $rows. И так у нас получается два результат в одном массиве. Один из базы, а другой из вне.

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

Идем далее, есть массив и выводим его

[PHP]

foreach( array_slice($rows, $start, $num) as $row) {
echo $row;
}
[/PHP]

из этого ничего хорошего не получается, можно перейти на какцю нибудь 10 страницу и в итоге получим пустоту. Значения то у нас $start, $num от результат для запроса из базы данных, но не учитывается кол-во записей из вне. Помогите пожалуйста решить эту проблему, буду очень благодарен.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
сообщение 7.10.2013, 11:18; Ответить: Degradator
Сообщение #2


Очень много букав. Струдом осилил.
Вы делаете что-то не так, как делаю я. Обычно, на сайте с новостями, где есть $_GET['page'], внизу страницы есть специальное навигационное меню, в котором указано, на какие страницы можно перейти. Когда пользователь кликает на страницу, то запрос приходит в ваш пых скрипт, и там вы делаете

[PHP]$num = "50";
$page = intval($_GET['page']);
$start = $page * $num - $num;
$end = $page * $num;

$result = getArrayFromeSQLQuerry("SELECT * FROM `posts` WHERE 1=1 LIMIT ".$start.", ".$end.";");

if(count($result) != 0){
$pages = getArrayOfPages($page);
var_dump($result); <-вывод новостей
var_dump($pages); <- вывод нав меню
}else{
print "<h1>Вы зашли на несуществующую страницу, не удивляйтесь что тут пусто. 404.</h1>";
}


getArrayOfPages($page){
должна посчитать сколько новостей в базе всего, и дать ответ, какие циферки вывести в навигационное меню. функция сложная. (я в ответ записываю объекты своего класса, в котором есть три поля - номер страницы, отображаемое значение, и статус - 0 - текущая, 1-обычная, 2-первая, 3-последняя, 4-на 5 страниц назад, 5-на 5 страниц вперед :O
}
getArrayFromeSQLQuerry($sql){
функция возвращает массив с ответом от базы.
}[/PHP]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Ручное составление СЯ и постраничная Оптимизация
Преимущественно для интернет-магазинов
5 skyes 4489 22.7.2017, 14:15
автор: Alexeus
Открытая тема (нет новых ответов) постраничная листалка с выбором страници
0 nfdv 2911 8.2.2015, 13:38
автор: -nfdv-
Открытая тема (нет новых ответов) Поиск и постраничная навигация
1 pragatz 3086 9.2.2013, 18:01
автор: -Arks-


 



RSS Текстовая версия Сейчас: 26.4.2024, 8:55
Дизайн