Объясните пожалуйста на примере следующих сайтов : http://www.ecaudit.ru и
http://www.sprinter.ru/advert/bookler-1888902.html# ! :
1.Какие таблицы создают программисты для хранения информации о разделах сайта?
2. Как они хранят эту информацию ( текст, картинки, странички и тд. в самой базе данных, которые реально не существуют, или отдельно, то есть в базе данных тоько ссылки лежат)
2.Каким образом строится древовидная структура такого типа :
Раздел 1
|________Подраздел 1.1
|________Подраздел 1.2
Раздел2
|________Подраздел 2.1
| |__________________Подраздел 2.1.1
| |__________________Подраздел 2.1.2
|________Подраздел 2.2
в базе данных.
3. Как правильно заносить информацию в такую базу данных и извлекать из нее!
4. Как грамотно построить сайт по такому принципу ? Что бы потом можно было привязать к этой таблице "Навигацию по сайту" , как на сайте http://ecaudit.ru/o_kompanii и как я понял ЧПУ .
Объясните, на реальном примере, что бы можно было понять основы, с чего начать!
Спустя 2 часа, 21 минута, 41 секунда (15.01.2007 - 20:56) Timok написал(а):
я не спец и если ляпну че-нибудь не то, заранее извините<br><!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->1.Какие таблицы создают программисты для хранения информации о разделах сайта?<!--QuoteEnd--></div><!--QuoteEEnd--><br>самые обычные, с полями типа `ID раздела`, `Название раздела`, `Описание раздела` и т.п. <br>Для подраздела нужно еще одно поле - `ID раздела-родителя`, внешний ключ (извините за мо плохой французский, просто не знаю как сказать по-научному ), что бы показать к какому разделу этот подраздел относится. Т.е., вот, например, ты привёл систему разделов 3-х уровней.<br><!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Раздел 1 <br> |________Подраздел 1.1<br> |________Подраздел 1.2<br> Раздел2<br> |________Подраздел 2.1<br> | |__________________Подраздел 2.1.1<br> | |__________________Подраздел 2.1.2<br> |________Подраздел 2.2<!--QuoteEnd--></div><!--QuoteEEnd--><br>выглядит это, примерно так:<br>таблица part1 (раздел 1)<br>p1_id - PK (primary key - первичный ключ)<br>p1_name - название первого раздела<br><br>таблица part2 (подраздел 2)<br>p1_id - типа внешний ключ (в MySQL их как таковых нет)<br>p2_id - PK <br>p2_name - название подраздела<br><br>таблица part3 (подраздел 3)<br>p2_id<br>p3_id - PK <br>p3_name<br><br>Например нам нужно получить данные о подразделе (part3) и известен его ID (p3_id). Пускай он равен единице, тогда запрос будет выглядеть так<br>
В результате получим название подраздела, ID которого мы указали, а так же имена тех раздело в которых он находится.
Текст можно хранить в базе, можно в отдельных страницах - все зависит от того где он используется. Например, посмотри на строку адреса - там написано http://phpforum.ru/viewtopic.php?pid= и ID соответствующей записи в таблице тем форума. Т.е. одна страница - но при указании разных ID скрипт будет брать из базы соотв. записи. Если страница статическая, и ее содержание не меняется - проще вообще хранить ее в обычном html
Картинки - лучше хранить в базе только ссылки на файлы, хотя можно в ней и файлы хранить
INSERT и SELECT. такие вопросы к ману.
SELECT
`part1`.`p1_name`,
`part2`.`p2_name`,
`part3`.`p3_name`
FROM `part1`,`part2`,`part3`
WHERE
`part3`.`p3_id` = 1 AND
`part3`.`p2_id` = `part2`.`p2_id` AND
`part2`.`p1_id` = `part1`.`p1_id`
В результате получим название подраздела, ID которого мы указали, а так же имена тех раздело в которых он находится.
QUOTE
2. Как они хранят эту информацию ( текст, картинки, странички и тд. в самой базе данных, которые реально не существуют, или отдельно, то есть в базе данных тоько ссылки лежат)
Текст можно хранить в базе, можно в отдельных страницах - все зависит от того где он используется. Например, посмотри на строку адреса - там написано http://phpforum.ru/viewtopic.php?pid= и ID соответствующей записи в таблице тем форума. Т.е. одна страница - но при указании разных ID скрипт будет брать из базы соотв. записи. Если страница статическая, и ее содержание не меняется - проще вообще хранить ее в обычном html
Картинки - лучше хранить в базе только ссылки на файлы, хотя можно в ней и файлы хранить
QUOTE
3. Как правильно заносить информацию в такую базу данных и извлекать из нее!
INSERT и SELECT. такие вопросы к ману.
Спустя 2 часа, 19 минут, 32 секунды (15.01.2007 - 23:15) levis написал(а):
INSERT INTO table_name (cols_name,...) VALUES (text,...);
Например есть у нас таблица
------------------
|id_page|text_page|
------------------
Нам надо вставить в нее текст новой страницы
например :"новый текст";
.../конект к базе выбор базы
mysql_query("INSERT INTO table (text_page) VALUES ('новый текст')");
все инфа в базе
id_page-укажется само если граммотно создана таблица
select-про нее моно говорить очень много
select cols from table where chto-to=chemy-to
также моно применять
сортировку -ORDER BY DESK(возрастание) или ORDER BY ASK(убывание)
группировку GROUP BY тут пишите имя колонки в которой есть совпадающие значения.
лимит-LIMIT 0,50-выбирет все записи от 0 до 50 соответственно
Например есть у нас таблица
------------------
|id_page|text_page|
------------------
Нам надо вставить в нее текст новой страницы
например :"новый текст";
.../конект к базе выбор базы
mysql_query("INSERT INTO table (text_page) VALUES ('новый текст')");
все инфа в базе
id_page-укажется само если граммотно создана таблица
select-про нее моно говорить очень много
select cols from table where chto-to=chemy-to
также моно применять
сортировку -ORDER BY DESK(возрастание) или ORDER BY ASK(убывание)
группировку GROUP BY тут пишите имя колонки в которой есть совпадающие значения.
лимит-LIMIT 0,50-выбирет все записи от 0 до 50 соответственно
_____________