[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Построение структуры сайта средствами PHP|MySQL
EVGEN
Добрый вечер, уважаемые администарторы и пользователи форума! Уже очень долго пытаюсь разобраться в очень интересующем меня вопросе. Обошел много форумов, прочитал много документов, но не могу понять и разобраться в сл. вопросах самостоятельно! Объясните раз и навсегда, что бы не поднимать эту тему повторно, потому что очень многих в инете интересует вопросы, заданные мной в этом форуме!
Объясните пожалуйста на примере следующих сайтов : 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> &nbsp; &nbsp; &nbsp;|________Подраздел 1.1<br> &nbsp; &nbsp; &nbsp;|________Подраздел 1.2<br> &nbsp; &nbsp;Раздел2<br> &nbsp; &nbsp; &nbsp;|________Подраздел 2.1<br> &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|__________________Подраздел 2.1.1<br> &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|__________________Подраздел 2.1.2<br> &nbsp; &nbsp; &nbsp;|________Подраздел 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>
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 соответственно


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.