у меня CMS с ЧПУ. в .htaccess все запросы перенаправляются на index.php Там парсится URL и генерируется страница. Вся информация о структуре сайта в базе. Нужно сделать правильную обработку 404 ошибки, т.е. если в базе не найден раздел/подраздел, отвечающий введенному URL, то пользователю выводится своя 404 ошибка.
в index.php стоит проверка: если нет раздела, то header ("Location: /404.php");exit; при этом идет редирект, 404 ошибка, но адрес в строке меняется с введенного на 404.php Как сделать, чтобы адрес в строке не менялся?
в .htaccess я прописал ErrorDocument 404 /404.php только изначально мы не знаем - правильный url или нет - и попадаем в index.php, где и узнаем это. mod_rewrite -ом вроде нельзя это сделать (вся инфа в базе, а правил для названий разделов нет - они любые могут быть)
html_coder структура согласно модулю phpDBTree 1.4 (Я думал, может кто-то пользуется) структура CREATE TABLE `site` ( `cid` int(16) unsigned NOT NULL auto_increment, `cleft` int(10) unsigned NOT NULL default \'0\', `cright` int(10) unsigned NOT NULL default \'0\', `clevel` int(10) unsigned NOT NULL default \'0\', PRIMARY KEY (`cid`), KEY `cleft` (`cleft`,`cright`,`clevel`) ) TYPE=MyISAM
Короче выспался и сделал за 10 минут
select i.cid, d.title from site i, site_data d, site p, site cur where p.cleft < cur.cleft and p.cright>cur.cright and p.clevel=cur.clevel-1 and i.cleft > p.cleft and i.cright < p.cright and i.clevel=p.clevel+1 and i.cid=d.cid and cur.cid=$id order by i.cleft
есть структура nested sets. модуль phpDBTree 1.4 При выводе инфы о конкретном элементе дерева иногда полезно ставить ссылки "Предыдущий" - "Следующий". Это соседи (level тот же).
Только вот как найти этих соседей? В начале есть только cid элемента.
нашел еще один способ это сделать, только вот на совместимость не могу проверить. Может кто поможет?
в стилях создается класс .menu1_{ color: Black; background: #BCD1E0;} .menu1_:hover{ color: White; background: #253F50; }
в html таблица выглядит так
О компании
НО при этом данная конструкция работает Только при объявленном doctype в начале документа http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
Если версию html поставить не 4.01, а 3.2, то результат будет такой же, как если убрать doctype совсем.
Вопрос: Как страница с doctype(4.01) отображается на страых браузерах? Будет ли она отображаться корректно, согласно заявленному типу документа? Или надо, чтобы браузер поддерживал HTML 4.01? (Так это вроде уже давно все браузеры поддреживают, только без объявления DOCTYPE отображают страницу в режиме совместимости со старыми браузерами)
html_coder первый как раз подходит. Когда писал первый топик, не знал, как конкретно это можно сделать. В первом варианте как раз один раз отдельно все прописывается, а затем идет таблица (только tr - td) и данные CGVictor Спасибо
CREATE TABLE `catalog_data` ( `id` int(11) NOT NULL auto_increment, `cid` int(16) default NULL, `title` text PRIMARY KEY (`id`) ) TYPE=MyISAM
Как добавить в эту таблицу 1 строку, только так чтобы не было дупликатов со значениями \'cid\'.
Делать сначала один запрос, в которм проверять наличие строки, а заетм, если еще нет такой строки, то вторым запросом добавлять? Можно ли одним запросом сделать?
Есть структура Nested sets - каталог товаров. На каждый товар цена зависит от еще одного параметра, т.е. цен у каждого товара много. При выводе элементов каталога хочу сразу одним запросом находить цены (min и max), только выводить надо все товары и без цены тоже (цена есть не у всех элементов, да и элементов,отвечающих за названия групп не может быть цены)
талица price = {id, item_id, color_id, price}
запрос1 - вывод элементов каталога select i.cid, d.title, d.type from $table i, $tableData d where i.cleft > $leftId and i.cright < $rightId and i.clevel=$level+1 and i.cid=d.cid order by i.cleft
связь с таблицей Price по столбцу item_id (id товара из каталога) Если делать объединение запросов,
select i.cid, d.title, d.type, min(p.price) as pmin, max(p.price) as pmax from $table i, $tableData d, price p where i.cleft > $leftId and i.cright < $rightId and i.clevel=$level+1 and i.cid=d.cid and p.item_id=i.cid group by i.cid order by i.cleft
то на выходе ТОЛЬКО те строки, у которых в таблице есть цена. Пропадают сразу все товары без цены и названия групп.
Как сделать, чтобы для каждой строки первого запроса, находились (!если есть) min(price) max(price)?
Вариант для каждой строки длать Новый запрос в таблицу Price не нравится