Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
4 / 4 / 1
Регистрация: 30.09.2010
Сообщений: 95

Пагинатор

30.09.2010, 15:08. Показов 1852. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет! Помогите. Такая проблема, выводит по поиску только на первой странице, на остольных страницах пусто. И еще проблема что выводит ссылки на все страницы.

Вот код:
HTML5
1
2
3
4
5
6
7
<form action="poisk.php" method="post">  
        <td><input type="text" name="poisk" class="form-text" maxlength="30" size="35" value="<? $_GET['poisk']; ?>Поиск по прайсу..." onblur="if(this.value=='') this.value='Поиск по прайсу...';" onfocus="if(this.value=='Поиск по прайсу...') this.value='';" border="0"></td>  
        <td width="10" height="25">  
            <img src="https://www.cyberforum.ru/images/1_19.jpg" width="10" height="25" alt=""></td>  
        <td width="38" height="25">  
            <input  style="border:0px; width:38; height:25; background:url('images/1_20.jpg')" type="submit"  name="go1" value=""></td>  
</form>
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
53
54
55
56
57
58
59
<?          
include "setup/opt.php";  
mysql_select_db($DB);  
$poisk = '';  
     if (isset($_POST['poisk'])){  
     $poisk = strip_tags($_POST['poisk']);  
     }  
       
     $poisk = trim($poisk);  
                            if (!empty($poisk)){  
 $count_per_page = 16;  
 $page = 1;  
 
 
        $result = mysql_query('SELECT round(count(id)/' . $count_per_page . ') FROM PRICELIST');  
   $counts = mysql_fetch_row($result);  
$page_max = $counts[0];  
 
if (!empty($_GET['page'])) {  
$page = (int) $_GET['page'];  
if ($page > $page_max)  
$page = $page_max;  
if ($page < 1)  
$page = 1;  
}  
$poisk=addslashes($poisk);  
 
     $result = mysql_query ('SELECT * FROM PRICELIST WHERE nametovar LIKE "%'.$poisk.'%" LIMIT ' .(($page - 1) * $count_per_page). ', ' .$count_per_page);  
       echo "<td valign='right width='12%' height='15px' align='center' bgcolor=#FFFFFF>Артикул</td>  
        <td valign='right width='28%' height='' align='center' bgcolor=#FFFFFF>Наименование изделий</td>  
        <td valign='right width='45%' height='' align='center' bgcolor=#FFFFFF>Описание</td>  
        <td valign='right width='10%' height='' align='center' bgcolor=#FFFFFF>Цена</td>  
        <td valign='right width='5%' height='' align='center' bgcolor=#FFFFFF>картинка</td>";  
     $libr = mysql_num_rows($result);  
     if ($libr!==0){  
 
                           while ($row = mysql_fetch_assoc($result)){  
    echo "</tr>";  
        echo "<tr>";  
 
 
    echo '<td align=left width=12% height=10% bgcolor=#FFFFFF>'.$row['artikul'].'</td><td width=28%  align=left bgcolor=#FFFFFF height=10px>'.$row['nametovar'].'</td><td width=45% align=left bgcolor=#FFFFFF height=10px>'.$row['opisanie'].'</td><td width=10% align=left bgcolor=#FFFFFF height=10px>'.$row['cena'].'</td><td width=5% align=left bgcolor=#FFFFFF height=5px><img src="kartinki/' . $row['image'] .'" width=75px height=75px></td>';  
}  
 
 echo '</tr><tr><td align="center" colspan="6" bgcolor=#FFFFFF>';  
 
for ($i=1; $i<$page_max; ++$i) {  
if ($i != $page) {  
echo '<a href="?page=' . $i . '&poisk='.$poisk.'">'.$i.'</a> ';  
}  
else {  
 
echo ''.$i.' ';  
        }  
    }  
echo '</td>';   
}  
}  
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2010, 15:08
Ответы с готовыми решениями:

Пагинатор, почти доделал простейший пагинатор
Вот, собсна код &lt;?php function paginate ($page, $pageCount, $offset) { if (($page&lt;1) || ($page&gt;$pageCount)) { ...

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

Пагинатор
У меня стоит пагинатор. Но проблема в том, что при переходе, например, на вторую страницу другие данные, которые передаются методом GET...

4
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
30.09.2010, 19:06
даа.., понимал бы этот момент
Цитата Сообщение от RuslanBLR Посмотреть сообщение
if (!empty($_GET['page'])) {
наверно и получилось бы помочь....
у меня когда я так гэт задаю выскакивает ошибка, мол чо за 'page'.
как ты даешь знать проге что такое 'page'?
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
01.10.2010, 06:48
Так пробуйте:

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
53
54
55
56
57
58
59
60
61
62
63
64
<?          
include "setup/opt.php";  
mysql_select_db($DB);  
$poisk = '';  
     if (isset($_POST['poisk'])){  
     $poisk = strip_tags($_POST['poisk']);  
     }  
       
     $poisk = trim($poisk);  
                            if (!empty($poisk)){  
 $count_per_page = 16;
 
 
        $result = mysql_query('SELECT round(count(id)/' . $count_per_page . ') FROM PRICELIST');  
   $counts = mysql_fetch_row($result);  
$page_max = $counts[0];  
 
//Если, передан номер страницы, то записываем его в переменную $page
//Иначе, думаем, что пользователь перешел на первую страницу
( int ) $page = isset ( $_GET['page'] ) ? $_GET_['page'] : 1;
 
//Если переданная страница больше максимально возможной страницы,
//то приравниваем страницу к максимально возможному числу,
//думая, что пользователь просто ошибся:)
$page = $page > $page_max ? $page_max : $page;
 
$poisk=addslashes($poisk);  
 
     $result = mysql_query ('SELECT * FROM PRICELIST WHERE nametovar LIKE "%'.$poisk.'%" LIMIT ' .(($page - 1) * $count_per_page). ', ' .$count_per_page);  
       echo "<td valign='right width='12%' height='15px' align='center' bgcolor=#FFFFFF>Артикул</td>  
        <td valign='right width='28%' height='' align='center' bgcolor=#FFFFFF>Наименование изделий</td>  
        <td valign='right width='45%' height='' align='center' bgcolor=#FFFFFF>Описание</td>  
        <td valign='right width='10%' height='' align='center' bgcolor=#FFFFFF>Цена</td>  
        <td valign='right width='5%' height='' align='center' bgcolor=#FFFFFF>картинка</td>";  
     $libr = mysql_num_rows($result);  
     if ($libr!==0){  
 
                           while ($row = mysql_fetch_assoc($result)){  
    echo "</tr>";  
        echo "<tr>";  
 
 
    echo '<td align=left width=12% height=10% bgcolor=#FFFFFF>'.$row['artikul'].'</td><td width=28%  align=left bgcolor=#FFFFFF height=10px>'.$row['nametovar'].'</td><td width=45% align=left bgcolor=#FFFFFF height=10px>'.$row['opisanie'].'</td><td width=10% align=left bgcolor=#FFFFFF height=10px>'.$row['cena'].'</td><td width=5% align=left bgcolor=#FFFFFF height=5px><img src="kartinki/' . $row['image'] .'" width=75px height=75px></td>';  
}  
 
 echo '</tr><tr><td align="center" colspan="6" bgcolor=#FFFFFF>';  
 
//Если у нас всего одна страница, то выводить вообще её не будем
if ( $page > 1 ) {
for ($i=1; $i<$page_max; ++$i) {  
if ($i != $page) {  
echo '<a href="?page=' . $i . '&poisk='.$poisk.'">'.$i.'</a> ';  
}  
else {  
 
echo ''.$i.' ';  
        }  
    }
}
 
echo '</td>';   
}  
}  
?>
P.S. Лучше использовать функцию ceil(); в PHP, которая округляет в большую сторону. Но аналога этой функции в MySQL я не знаю. Почему именно её? Потому, что если в таблице будет одна запись, а выводить нужно по 16 на страницу, то этот запрос:
SQL
1
SELECT round(COUNT(id)/' . $count_per_page . ') FROM PRICELIST
вернет ноль. А таким образом мы получаем максимально возможное количество страниц ( $page_max ) равным 0. Вы, как я видел, пытались это предотвратить путем добавление такого условия:
Цитата Сообщение от RuslanBLR Посмотреть сообщение
if ($page < 1) $page = 1;
Это как один из выходов, но я бы лучше использовал функцию ceil(); в PHP.
Обычно эти расчеты делают в PHP, а не в MySQL. Но дело Ваше.
0
4 / 4 / 1
Регистрация: 30.09.2010
Сообщений: 95
01.10.2010, 13:44  [ТС]
НЕ работает, все тоже самое-поиск проходит, но только уже не выводит вообще ссылок на страницу. Показывая только первых 16.

Добавлено через 3 часа 24 минуты
РЕБЯТА. ПОМОГИТЕ НАПИСАТЬ!!!!!! ОЧЕНЬ НУЖНО!!!!!!!
0
0 / 0 / 0
Регистрация: 10.05.2013
Сообщений: 12
29.04.2014, 13:31
XML
1
[MATLAB][RAILS][F[SQL][1C][PASCAL][HTML][PHP][MYSQL][CPP][/CPP][/MYSQL][/PHP][/HTML][/PASCAL][/1C][/SQL]ORTRAN][CSS][PROLOG][CPPQT][C][PLSQL][ASM][PERL][/PERL][/ASM][/PLSQL][/C][/CPPQT][/PROLOG][/CSS][/FORTRAN][/RAILS][/MATLAB]
ццццццц
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.04.2014, 13:31
Помогаю со студенческими работами здесь

пагинатор
Нашел такой вариант пагинатора как связать вот эту консрукции с ним $sm=mb_strlen($s,'UTF-8'); echo &quot; количество...

Пагинатор на страницу
Вот так выглядит место где выводятся все записи из бд. Вопрос в том, как вставить сюда paginator, любой, даже на js? Что не скопирую с...

Как сократить пагинатор?
Нужно обрезать пагинацию ! оставить первые четыре близлежащие страницы и 4 последние близлежащие вот мой код: &lt;?php $count =...

Пагинатор кнопки вперед назад
ребят как сделать в данном классе кнопки вперед и назад? &lt;?php /* * Класс для генерации постраничной навигации */ ...

Пагинатор, разбивка контента на страницы
У меня такой вопрос, можно ли сделать пагинацию если информация выводится циклом не из базы? например так: &lt;? $dir =...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru