- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ребят, извините, но в теме не высказать свой вопрос, так как просто места не хватит.
Есть страница - каталог товаров. В каталоге 970 товаров. Не могу понять, как реализовать создание страниц. Т.е. первую сделал с 20-ю товарами, а как остальные?
Внизу каждой страницы соответственно перелинковка страниц (на которых по 20 товаров 1-20 21-40 41-60 и т.д.
Но вот не пойму, я ссылки в этой перелинковке делать не хочу такого вида
catalog25.php?p=2 catalog25.php?p=3 и т.д.
Понятно что могу руками сделать страницы
catalog25-2.php
catalog25-3.php
и т.д. но страницы хранятся в таблице БД и хотелось бы и дальше так делать, те. чтобы я не физические страницы создавал (копировал) а просто в таблице бд это всё как то делалось.
Понимаю, запутано, но может кто подскажет алгоритм.
Просто запутался.
Алгоритм подскажем:)
1) делаем запрос к БД(SELECT * FROM tbl1 лимит X, X+20). X=номер страницы из названия файла.
2)На странице рисуем в цикле ту строчку, где числа это ссылки (страница 1, 2, 3, 4, ... , N)
3) Ссылки вида сайт.ру/catalog25/2.php(такова вида точно знаю сделать можно)
4) Через ридирект все льем на основной файл.
5) Там уже берем это число(номер страницы) и подставляем в запрос.
Это если кратко:)
Гуглите про пагинацию.
Алгоритм подскажем:)
1) делаем запрос к БД(SELECT * FROM tbl1 лимит X, X+20). X=номер страницы из названия файла.
2)На странице рисуем в цикле ту строчку, где числа это ссылки (страница 1, 2, 3, 4, ... , N)
3) Ссылки вида сайт.ру/catalog25/2.php(такова вида точно знаю сделать можно)
4) Через ридирект все льем на основной файл.
5) Там уже берем это число(номер страницы) и подставляем в запрос.
Это если кратко:)
При этом страницы будут существовать для ПСов?
Страницы сайт.ру/catalog25/2.php
сайт.ру/catalog25/3.php
сайт.ру/catalog25/4.php
сайт.ру/catalog37/2.php
сайт.ру/catalog37/3.php
и т.д?
Да вообще можно на 1 файле разрулить.
сайт.ру/каталог/номерКаталога/номерСтраницы
И через реврайтРуль уже разруливаем как хотим.
ЗЫ. естесно для Псов они будут существовать.
Да вообще можно на 1 файле разрулить.
сайт.ру/каталог/номерКаталога/номерСтраницы
И через реврайтРуль уже разруливаем как хотим.
ЗЫ. естесно для Псов они будут существовать.
потер. не заметил
---------- Добавлено 12.11.2012 в 22:59 ----------
Подскажите, пожалуйста, основную страницу категории мне делать реально физически существующей или в таблице БД заводить? Надеюсь я понятно выражаюсь. Спасибо
postavkin, вы же свою cms строите? тогда у вас "должен" быть только index.php в корне.
в htaccess перенаправляете ВСЁ в index.php
а там уже пляшете, как хотите
postavkin, вы же свою cms строите? тогда у вас "должен" быть только index.php в корне.
в htaccess перенаправляете ВСЁ в index.php
а там уже пляшете, как хотите
Да какое строю ;) Пробую, не более того.
Да много чего уже сделано. Но я тут просто суть понять не могу.
На текущий момент все запросы перенаправляю в index.php
Но вот как быть
делаю страницу laminat.php
в странице сейчас выводится 520 товаров (условно).
Но я хочу чтобы выводилось по 20 и внизу были ссылки на другие страницы.
Как построить ссылки я примерно понимаю.
Я не понимаю - как делать страницы....
Если их не добавлять в таблицу бд то index.php решит что страницы нет и выдаст 404.
Если их добавлять в таблицу бд, то это что же я так замаюсь....т.к. разделов много - ламинат матовый, глянуевый, красный и т.д
Вот и запутался
Попробуйте так:
1. В .htaccess прописать:
RewriteEngine on
RewriteRule ^/catalog/([0-9]{1,})/([0-9]{1,})\.html catalog.php?catalog=$1&part=$2
Теперь все запросы вида site.ru/catalog/<число>/<число>.html будут идти в скрипт catalog.php .
2. В файле catalog.php сделать следующее:
а. Создать константу, содержащую необходимое число позиций на одной странице: define( 'CATALOG_POSITIONS' , 20)
б. Проверить GET переменные на правильность
в. Сделать запрос к БД
г. Проверить количество найденных строк
Если их ноль, то выдаем ошибку 404
И завершаем скрипт(если необходимо)
Если строк больше нуля, то идем дальше
д. Выводите найденные строки на страницу
е. Делаете запрос:
Если count меньше или равна CATALOG_POSITIONS(т.е. 20), то смысла делать ссылки нету(т.к. в каталоге всего одна страница).
Если count больше CATALOG_POSITIONS, то необходимо вычислить количество страниц у каталога.
ё. Вычисляем количество страниц:
$count - количество страниц в каталоге(не забудьте создать переменную)
ceil - это округление до большего. Если, например, $count равен 125 и CATALOG_POSITIONS равен 20, то $catalog_pages будет равен 7 (6 страниц по 20 позиций и одна с 5-тью позициями)
ж. На основании $catalog_pages создайте ссылки на другие страницы каталога:
Если не наделать ошибок, то поисковики это должны без проблем обработать и проиндексировать.
Не забывайте про безопасность при написании скрипта!
postavkin, http://www.pagination.ru/
Не забывайте про безопасность при написании скрипта!
Об этом вообще ничего не знаю.
Спасибо за расклад.
Я принял решение сделать для раздела подбора товаров страницы, которые будут существовать физически на сервере и обойдусь без всяческих обработчиков.
---------- Добавлено 13.11.2012 в 19:09 ----------
А вместо номеров можно буквы - т.е. слова?
site.ru/catalog/plitka/red.php
site.ru/catalog/plitka/blue.html