postavkin

Рейтинг
601
Регистрация
06.01.2009
fsou1:
Вы уточнили у другого уважаемого человека, когда спрашивали, что пагинация будет использоваться не просто для перелистывания записей, а в форме поиска, предполагающей наличие критериев отбора?

Я не помню, но видимо не уточнил.

Т.е. лучший вариант - это переделать пагинацию в вид

category?page=2 и данные формы дописывать а вдресную строку чтобы если критерии формы выбраны то критерии добавлялись и мы получали адр строку вида

category?page=2&material=laminat&color=red&razmer=10x100&poverhn=matovaya&strana=italy верно?

Лучшего выхода нет я так понимаю.

Я видел, мне выше варианты с сессиями предлагали и прочее, но по науке и правильно переделать пагинацию, да?

Спасибо заранее

wwwwww:
"Я тебя слепила из того, что было..." ©
Уважаемый, в одной из тем я уже советовал почитать теорию.

Но Вам скучно. Лучше г-но CMS лепить и вопросы спрашивать из книжки.
http://webpeppers.ru/46.html
http://www.myfirstsite.ru/articles/get-and-post

Спасибо.

Я теорию про GET и POST почитал, но не понял как быть в моём конкретном случае. Я бы передал через GET если бы мне не посоветовали урлы пагинации делать вида /category/2 (в данном случае то что после /category/ - номер страницы.

Я бы сделал пагинации ссылки такими /category?page=2 и долепилбы к ним данные полученные из формы т.е. /category?page=2&material=3&color=red

А я в обработчике (как мне посоветовали) сделал выдачу 404 ошибки если после /2 есть чтото ещё (символы не относящиеся к цифрам). Я учусь, читаю, пробую...

---------- Добавлено 15.11.2012 в 12:58 ----------

fsou1:
Для пагинации рекомендуется использовать GET

Странно, вот мне другой уважаемый человек, посоветовал сделать ссылки вида такого как я написал чуть выше (category/2, а не category?page=2) - я так и сделал. Как же все таки правильно.

---------- Добавлено 15.11.2012 в 13:02 ----------

Dreammaker:
кто мешает их подставлять "вручную"?

Вы имеете ввиду "вручную" - дописывать к ссылке category/2 дописывать ?material=5&color=blue ?

ivan-lev, заметьте, я просил расшифровать именно часть строки...все я понял. Просто я не понял, что значит точка между MOD.$module

Более того, я даже себе скопировал этот код, сделал папку MOD положил в неё файл с названием $module - не работает.

А вот если в корень положить файл MOD$module.php то срабатывает. Пожтому и спросил. Извините, да, про defined не возьму в толк, кто кого определяет...

Ребят, расшифруйте пожалуйста строку

&&is_file(MOD.$module.'.php')
_A_:

Не забывайте про безопасность при написании скрипта!

Об этом вообще ничего не знаю.

Спасибо за расклад.

Я принял решение сделать для раздела подбора товаров страницы, которые будут существовать физически на сервере и обойдусь без всяческих обработчиков.

---------- Добавлено 13.11.2012 в 19:09 ----------

А вместо номеров можно буквы - т.е. слова?


site.ru/catalog/plitka/red.php
site.ru/catalog/plitka/blue.html
ivan-lev:
Я своё мнение в одной из соседних тем (ваших же) оставлял.. Не помогает ;)

Я смотрел как сделано в вордпрессе...но так и не понял правильно ли сделал я. Буду ещё раз смотреть.

---------- Добавлено 13.11.2012 в 15:45 ----------

Dinozavr:
прислушайтесь к ivan-lev :)

Да, читаю ещё раз http://www.codenet.ru/progr/vbasic/vb_db/1.php

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

Dinozavr:
а в чём проблема? так и заносите в базу. если товар может быть из 2х и более материалов, то показываете select. это лучше чем выводит 10 товаров у которых только цвет различается

Вот я вас и не понимаю, так как моего уровня знаний даже не достаточно чтобы понять вашу фразу. 😒

ivan-lev, скажите, пожалуйста, я этот код в index.php вообще правильно сделал - я к тому, что нужно ли заводить в таблицах урл страниц и проверять их существование в index.php ? или всё что я сделал - в корне не верно. Спасибо

/ru/forum/comment/11081262

ivan-lev:
Если нет желания читать, повторюсь.. хотя бы посмотрите, как сделано у других.

Есть желание читать, но материал понятен лицам которые хоть какое то обучение прошли. А я не проходил, поэтому нифига понять не могу. Решил взять тайм аут и не рубить топором. Буду читать.

Посмотреть как сделано у других никак - код никто не показывает :) Доступ к базе не дают...

---------- Добавлено 13.11.2012 в 15:01 ----------

Dinozavr, если у товара 10 свойств - лакированная/нелакированная, черная/белая/красная, большая/маленькая/средняя, италия/россия/китай, 2метра/ниже/выше и т.д. как тогда быть...не понял.

Ладно, спасибо. Ушел читать.

Dinozavr:
1.в отдельную таблицу вы выносите то, что общее у многих товаров + по чему вам надо искать
артикул в таблицу к товару, "гранит" отдельно и + таблицу "соединения"(я не знаю как они правильно по-русски называются)

2. Пример "красный гранит". вы на главной, вам нужно построить меню.
идёте в таблицу "товар_св-товара", берёте id, по этим id в соотв. таблицах берёте название.

Не воткнул - почему сразу из таблицы 'товары' не взять товары у которых колонка цвет='красный' а материал='гранит'. Не понял зачем 2,3,5 таблиц. Ребят, я сделал так.

На странице получил 100 результатов.

Я наверное не так объясняю задачу, но задача просто - страница физически не существует, как сделать так чтобы index.php не выдавал ошибку 404 при нажатии на "пагинационную страницу" красный гранит-2.php

---------- Добавлено 13.11.2012 в 14:45 ----------

Dinozavr:
1. пример: "/садасдф-гранит.пхп". в базе данных такой комбинации нет, вы пишите "товар не найден"
2. пример: "/красный-гранит_100500.пхп" в базе нет столько наименований->либо "не найдена", либо кидаете на "/красный-гранит.пхп"

Теперь понятно. Я не так сделал? Спасибо Dinozavr заранее


<?
// определим url
$tekurl = $_SERVER['REQUEST_URI'];
$tekurl = substr($tekurl, 1); // удалим первый слеш
// соед с бд
include('is/bd-soedinenie.php');
// пробежимся по всем таблицам БД и поймем есть урл или нет и в какой таблице он
$tablemass=array("statyi_001st", "zaprosy", "osnova", "proizvoditeli", "kollekzii", "tovary", "statyi2", "poisk_materialov");
$nooshibka=0;
foreach ($tablemass as $value) {
$result = mysql_query("SELECT id FROM $value WHERE urlstranizi='$tekurl' LIMIT 1");
$vsego = mysql_num_rows($result);
if ($vsego>0) {$nashatable=$value; $nooshibka=1; break(1);}
}
// отдаем серверу ошибку 404
if ($nooshibka===0) { header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');}
if ($nooshibka===1) {
//значит страница есть
if ($nashatable==='statyi_001st') {$razdel='statji';}
if ($nashatable==='zaprosy') {$razdel='zaprosy';}
и т.д.

У меня то существование урла проверяет по конкретному существованию записи...Нет записи с урлом - нет страницы.

ПОэтому и возник у меня гемор с пониманием того - как я могу сделать чтобы страницы открывались по ссылке red-laminat-2.php если в БД записан урл только red-laminat.php

Всего: 5508