Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP: базы данных

Войти
Регистрация
Восстановить пароль
 
SZV
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 82
#1

навигация страниц на сайте - PHP БД

01.02.2017, 10:38. Просмотров 172. Ответов 6
Метки нет (Все метки)

Строю навигацию страниц на сайте.

Для начала необходимо вывести по 3 заметки на странице. Вот код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php   
// Переменная хранит число сообщений выводимых на станице  
$num = 3;  
// Извлекаем из URL текущую страницу  
$page = $_GET['page'];  
// Определяем общее число сообщений в базе данных  
$result = mysql_query("SELECT COUNT(*) FROM post");  
$posts = mysql_result($result, 0);  
// Находим общее число страниц  
$total = intval(($posts - 1) / $num) + 1;  
// Определяем начало сообщений для текущей страницы  
$page = intval($page);  
// Если значение $page меньше единицы или отрицательно  
// переходим на первую страницу  
// А если слишком большое, то переходим на последнюю  
if(empty($page) or $page < 0) $page = 1;  
  if($page > $total) $page = $total;  
// Вычисляем начиная к какого номера  
// следует выводить сообщения  
$start = $page * $num - $num;  
// Выбираем $num сообщений начиная с номера $start  
$result = mysql_query("SELECT * FROM post LIMIT $start, $num");  
// В цикле переносим результаты запроса в массив $postrow  
while ( $postrow[] = mysql_fetch_array($result))  
?>
Где
data
таблица с данными.
Проблема в том, что у меня выводятся все заметки. Хотя задано только три
PHP
1
$num = 3;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2017, 10:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос навигация страниц на сайте (PHP БД):

Не работает навигация на сайте - PHP БД
Здравствуйте, подскажите где копать: Есть запрос из БД на вывод новостей. Первая страница правильно отображает количество новостей на...

навигация по разделам на сайте - PHP
Скажем есть такие разделы на сайте: Мне нужно чтобы контент в каждом разделе загружался отдельно, не перезагружая всю страницу...

Непонятное явление выбор страниц на сайте - PHP
или я глючу) но не понятно почему так происходит... вот часть кода: &lt;?php ........ else { $city=$_GET; $preparate=$_GET; ...

Пагинация страниц без добавления разрыв страниц - PHP
Здравствуйте! Подскажите как сделать нумерацию страниц не используя разрыв страниц, так как если много информации в одном материале joomla...

Навигация - PHP БД
Здравствуйте, форумчане! Необходима Ваша помощь, для того чтобы сделать навигацию... Вообще не хочет появляться даже намек на то,что...

Постраничная навигация - PHP
Как реализовать ... я сделал свою БД но просто в ней запутался крандык .. Хочу сделать такую ссылку . localhost/film/komedy/pricol/ я...

6
Виталюска
463 / 455 / 157
Регистрация: 26.09.2010
Сообщений: 2,323
01.02.2017, 10:41 #2
Цитата Сообщение от SZV Посмотреть сообщение
Проблема в том, что у меня выводятся все заметки.
а вывод где?
1
SZV
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 82
01.02.2017, 10:56  [ТС] #3
Точно! У меня ниже вывод и result формируется заново, поэтому вывод происходит по новому result.
Часть кода необходимо убрать
PHP
1
2
3
4
5
$result = mysql_query("SELECT id,title,description,dare,author,mini_img,view FROM data WHERE cat='$cat'",$db);
if (!$result){ 
echo"<p>Запрос на выборку данных из таблицы не прошел. Напишите об этом администратуру <br/> <strong>Код ошибки</strong></p>"; 
exit (mysql_error());
}
А остальную часть кода оставить:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (mysql_num_rows($result) > 0 ){
    $myrow = mysql_fetch_array($result);
    do{     
        printf ("<table  align='center' class='post'> 
                         <tbody>
                         
                             <tr>
                               <td class='post_title'><p id='post_name'><img class='mini' aling='left' src='%s'><a href='view_post.php?id=%s'>%s</a></p>
                               <p id='post_adds'>Дата добавления: %s</p>
                               <p id='post_adds'>Автор: %s</p></td>
                             </tr>
                             
                             <tr>
                               <td>%s<p class='post_view'>Просмотров: %s</p></td>
                             </tr>
                         </tbody>
                       </table <br/><br/>",$myrow['mini_img'],$myrow['id'],$myrow['title'],$myrow['dare'],$myrow['author'],$myrow['description'],$myrow['view']); /*ставить в той последовательности, в которой будут выводиться по очередности %s*/    
        }
        while ($myrow = mysql_fetch_array($result));
Тогда вывод будет правильным по 3 заметки, как задано у меня.

Хотя может быть более правильным будет написать код постраничной навигации в отдельном файле, а сюда цеплять через
PHP
1
include
. Хотя... Не знаю.
0
Виталюска
463 / 455 / 157
Регистрация: 26.09.2010
Сообщений: 2,323
01.02.2017, 11:10 #4
Цитата Сообщение от SZV Посмотреть сообщение
Хотя может быть более правильным будет написать код постраничной навигации в отдельном файле, а сюда цеплять через
это будет удобней
0
FloppyDisc
Особый статус
150 / 151 / 73
Регистрация: 18.11.2015
Сообщений: 869
01.02.2017, 15:22 #5
Цитата Сообщение от SZV Посмотреть сообщение
написать код постраничной навигации в отдельном файле
а еще правильней класс для работы с ним
0
miketomlin
Заблокирован
01.02.2017, 19:06 #6
Цитата Сообщение от FloppyDisc Посмотреть сообщение
а еще правильней класс для работы с ним
А если ТС не использует ООП?

SZV, да, лучше разделить подготовку данных и шаблон. Пример: Как сделать пагинацию? Правда, вот эти команды можно вынести и в шаблон, т.к. они относятся к строке навигации:
PHP
1
2
3
    $range=6;
    $first=$pn-1-($pn-2)%$range;
    $last=$first+$range<$pc?$first+$range:$pc;
0
FloppyDisc
Особый статус
150 / 151 / 73
Регистрация: 18.11.2015
Сообщений: 869
01.02.2017, 21:52 #7
Цитата Сообщение от miketomlin Посмотреть сообщение
А если ТС не использует ООП?
Это просто совет, который очень упростил бы жизнь. Ну не использует так нет, его бремя)
0
01.02.2017, 21:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2017, 21:52
Привет! Вот еще темы с ответами:

постраничная навигация - PHP БД
Уважаемые форумчане.. не магу разобраться, почему выдает ошибку, раньше всё работало, щас вываливает ошибку Warning: Division...

Алфавитная навигация - PHP
Всем здравствуйте ! прошу помощи в доработке этого скрипта. Суть просьбы : 1. Нужно убрать дублирование выводимых букв. 2....

Постраничная навигация - PHP БД
Я сделал полностью вывод , но не могу решить с лемитом . /page/1/ Нужно вывести новость от 10 до 20 и тд. если page/2 то 20 - 30 ...

Постраничная навигация - PHP БД
Нужно по нажатию на кнопку вывести песни определенного жанра. При нажатии на кнопку выводится то количество песен, которое было указано в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru