Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
MarkoPolo
0 / 0 / 2
Регистрация: 15.08.2012
Сообщений: 102
1

Постраничная навигация фото

13.09.2012, 20:53. Просмотров 1217. Ответов 12
Метки нет (Все метки)

Я создаю сайт фото-форум.Страницу где пользователь отправляет свои данные, фото и описание фотографии я уже создал (эти данные направляются на Mysql) Но главной проблемой для меня стало создание страницы где эти фотографии, описание и дата создания будут размещаться на сайте по порядку, чтобы размер каждой таблицы (где будут размещены фото, описание и дата создания) был одинаковый, чтобы на одной странице было не более 20 таких таблиц. Возможно вы знаете такой или подобный урок по размещению на сайте подобного материала (можно и на английском языке главное чтобы было доступно объяснено для начинающего)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2012, 20:53
Ответы с готовыми решениями:

Постраничная навигация
Привет, мир! Знатоки SQL + PHP, подскажите принцип работы постраничной...

Постраничная навигация
В общем есть таблица options где хранится число "5" для вывода 5 записей на...

постраничная навигация
<? сдесь вместо стрелок я вставил ссылки на картинки ...

Постраничная навигация
Добрый день. У меня задача такая. Данные выводятся ид БД в таблицу, которая...

постраничная навигация
Вот страница которая выводится... жирным шрифтом показана постраничная...

12
DrobyshevAlex
1173 / 1123 / 94
Регистрация: 31.05.2012
Сообщений: 3,059
13.09.2012, 20:55 2
google + слова типа: php, пагинация, постраничная навигация, pagination
0
MarkoPolo
0 / 0 / 2
Регистрация: 15.08.2012
Сообщений: 102
13.09.2012, 20:58  [ТС] 3
Я уже шестой день лажу по гугле и подобного урока не могу найти
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
13.09.2012, 21:27 4
если по простому, то так:
Первая часть:
1. делаете запрос к базе на подсчет числа строк в общем в таблице.
2. проверяете остаток от деления на нужное число строк (т.е. 20 у вас) - если без остатка, т.е. кратно - отнимаете единицу, если не кратно то ничего не делаете

Вторая часть:
1. В цикле выводите число нужных ссылок (которое подсчитали в первой части) вида ?link=$i
2. Из GET-параметров берете число ссылок, вычитаете единицу и умножаете обратно на число ссылок на странице (на 20) подставляете в лимит первым числом полученное из GET и умноженное на 20 число, а вторым числом - число нужных ссылок (20)
1
Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
14.09.2012, 09:30 5
Вот рабочий код только он извлекает данные из базы
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 $page2left = $page1left = $pervpage = $page1right = $page2right = $nextpage = '';
// Переменная хранит число сообщений выводимых на станице  
$num = 15;  
// Извлекаем из URL текущую страницу  Определяем начало сообщений для текущей страницы 
$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
// Определяем общее число сообщений в базе данных  
$result = mysql_query("SELECT COUNT(*) FROM post");  
$posts = mysql_result($result, 0);  
// Находим общее число страниц  
$total = intval(($posts - 1) / $num) + 1;  
// Определяем начало сообщений для текущей страницы  
// Если значение $page меньше единицы или отрицательно  
// переходим на первую страницу  
// А если слишком большое, то переходим на последнюю  
if($page <= 0) $page = 1;
else if($page > $total) $page = $total;
// Вычисляем начиная к какого номера  
// следует выводить сообщения  
$start = $page * $num - $num;  
// Выбираем $num сообщений начиная с номера $start  
$result = mysql_query("SELECT * FROM post LIMIT $start, $num");  
// В цикле переносим результаты запроса в массив $postrow  
 
 
echo "<table>";  
while ( $row = mysql_fetch_array($result))  
{  
 echo "<tr> 
         <td>".$row['name']."</td> 
         <td>".$row['time']."</td></tr> 
       <tr><td colspan=\"2\">".$row['text']."</td></tr>";  
}  
echo "</table>";
 
 
 
 
// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '<a href= ./retro?page=1><<</a>  
                               <a href= ./retro?page='. ($page - 1) .'><</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total) $nextpage = ' <a href= ./retro?page='. ($page + 1) .'>></a>  
                                   <a href= ./retro?page=' .$total. '>>></a>';  
 
// Находим две ближайшие станицы с обоих краев, если они есть  
if($page - 2 > 0) $page2left = ' <a href= ./retro?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';  
if($page - 1 > 0) $page1left = '<a href= ./retro?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';  
if($page + 2 <= $total) $page2right = ' | <a href= ./retro?page='. ($page + 2) .'>'. ($page + 2) .'</a>';  
if($page + 1 <= $total) $page1right = ' | <a href= ./retro?page='. ($page + 1) .'>'. ($page + 1) .'</a>'; 
 
// Вывод меню  
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
если сможешь код под себя сделать. База под названием post Поля:id, text, name, time не забудь подключиться к базе . Скажи спасибо DrobyshevAlex это он все отладил.
1
thebaron
7 / 7 / 3
Регистрация: 27.08.2012
Сообщений: 82
14.09.2012, 12:06 6
Брррр.... Ты что хочешь на сайте и в чем твоя проблема???
0
Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
14.09.2012, 12:37 7
Цитата Сообщение от thebaron Посмотреть сообщение
Брррр.... Ты что хочешь на сайте и в чем твоя проблема???
У меня проблем нет, просто MarkoPolo просил помочь ему вот я и выложил скрипт постраничной навигации что бы ему было легче практически готорый скрипт, а сортировку фоток думаю и сам сделать может или найти.
1
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
14.09.2012, 13:12 8
могу дать плагин пагинации на jquery
0
Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
14.09.2012, 13:24 9
Цитата Сообщение от crautcher Посмотреть сообщение
могу дать плагин пагинации на jquery
crautcher стесняюсь спросить, а Вы у каго спрашиваете, я б то же не отказался взглянуть, хоть одним глазком
1
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
14.09.2012, 13:49 10
Цитата Сообщение от Братуха Посмотреть сообщение
я б то же не отказался взглянуть, хоть одним глазком
запустите у себя :
Javascript
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<script type="text/javascript" src="https://storage.dating.lt/js/jquery.js"></script>
<script type="text/javascript" src="https://storage.dating.lt/astro/skins/bdreminder/js/paging.js"></script>
<script type="text/javascript">
$(document).ready(function() { 
/* куда поместить , количество элементов */
 $("#pagination").paging( 200 , {
/*
формат пагинации :
[ - к началу
] - к концу
< - влево -1
> - вправо +1
n  - не тещуеии страница
c - текущая     
*/
          format: "[ <.  nnncnnn  .> ]",       
          //   на страницу записей
          perpage: 8,
          lapping: 1,
          page: 1,
          onSelect: function (page) {
            /* взвращает страницу на которую нажали , подсасываев аяксом данные */;
       },
        onFormat: function (type) {
        //оформление
              switch (type) {
                 case 'block':
                      if (!this.active) return '<span class="disabled">' + this.value + '</span>';
                      else 
                      if (this.value != this.page)      return '<em><a href="#' + this.value + '">' + this.value + '</a></em>';
                      return '<span class="current">' + this.value + '</span>';
                 case 'next':
                      if (this.active)  return '<a href="#' + this.value + '" class="next">></a>';
                      return '<span class="disabled">></span>';
                 case 'prev':
                      if (this.active)  return '<a href="#' + this.value + '" class="prev"><</a>';
                      return '<span class="disabled"><</span>';
                 case 'first':
                      if (this.active)  return '<a href="#' + this.value + '" class="first">начало</a>';
                      return '<span class="disabled">начало</span>';
                    case 'last':
                      if (this.active)  return '<a href="#' + this.value + '" class="last">конец</a>';
                      return '<span class="disabled">конец</span>';
                        case "leap":
                      if (this.active) return "   ";
                      return "";
                    case 'fill':
                      if (this.active)  return "...";
                      return "";
              }
         }
    });
 
});
</script>
<div id="pagination"></div>
плюс в том что не надо постоянно общее количество элементов брать , один раз выбрали и далее js всё считает и отдаёт номер страницы
1
Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 820
14.09.2012, 13:51 11
http://www.pagination.ru
будут вопросы по данному скрипту - обращайтесь
1
Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
14.09.2012, 14:13 12
Цитата Сообщение от Василий Макогон Посмотреть сообщение
http://www.pagination.ru
будут вопросы по данному скрипту - обращайтесь
К сожалению плюсики не имею права ставить
1
MarkoPolo
0 / 0 / 2
Регистрация: 15.08.2012
Сообщений: 102
14.09.2012, 17:02  [ТС] 13
Спасибо всем, вы мне очень помогли
0
14.09.2012, 17:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2012, 17:02

Постраничная навигация
Вечер добрый. В общем тема то изъезженная. Мой вопрос касается постраничной...

Постраничная навигация
народ помогите выдает ошибку Warning: mysql_fetch_row() expects parameter 1...

Постраничная навигация
Я сделал полностью вывод , но не могу решить с лемитом . /page/1/ Нужно...


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

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

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