Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Упорядочение контента (статей): как изменить структуру базы и какая функция нужна?
 
 автор: Радосвет   (09.05.2006 в 18:44)   письмо автору
 
 

Здравствуйте!
С праздником всех вас, ваших родных и близких, отцов и матерей, дедов и бабушек!

Прошу помочь в одном вопросе, я долго думал как лучше сделать, но не придумывается что-то... По сути, вот что:

есть раздел статей (документы), в строке выглядит так ./doc/?id_page=1, статья из раздела в строке значится так ./doc/index.php?id_article=1...

Получается, что id СТРАНИЦЫ не зависит от id РАЗДЕЛА... Мне нужно сделать так, чтобы в кажом разделе список начинался с 1 и далее, то есть так:

1 раздел - 1, 2, 3, 4, 5...
2 раздел - 1, 2, 3, 4, 5...

В строке это должно выглядеть так:
./doc/index.php?id_page=1&id_article=1...
./doc/index.php?id_page=1&id_article=2...
./doc/index.php?id_page=1&id_article=3...
./doc/index.php?id_page=1&id_article=4...
./doc/index.php?id_page=1&id_article=5...
./doc/index.php?id_page=2&id_article=1...
./doc/index.php?id_page=2&id_article=2...
./doc/index.php?id_page=2&id_article=3...
./doc/index.php?id_page=2&id_article=4...
./doc/index.php?id_page=2&id_article=5...

Как примерно нужно изменить файл doc/index.php и doc/art.php, и что нужно изменить в базе? И возможно ли это вообще?

Заранее большое спасибо! :)

   
 
 автор: Саня   (09.05.2006 в 18:53)   письмо автору
 
   для: Радосвет   (09.05.2006 в 18:44)
 

$query = mysql_query("SELECT * FROM docs WHERE razdel=1;");

   
 
 автор: Радосвет   (09.05.2006 в 18:57)   письмо автору
 
   для: Саня   (09.05.2006 в 18:53)
 

Никак не соображу что именно нужно сделать... То есть я так понял, надо вручную создать в базе на каждый раздел по таблице? А по-другому никак? :)

   
 
 автор: Саня   (09.05.2006 в 19:11)   письмо автору
 
   для: Радосвет   (09.05.2006 в 18:57)
 

А какая структура таблицы у вас?

   
 
 автор: Радосвет   (10.05.2006 в 01:51)   письмо автору
 
   для: Саня   (09.05.2006 в 19:11)
 

Я использую систему управления с диска из книги PHP5: Практика создания...
Структура такая: есть талица artpage с полями id_artpage, name, id_site, title_html (последнюю создал сам для управления заголовками)... и таблица articles с полями id_article, name, description, html_title, html_description, html_keywords, pos, hide, id_page ...

Неужели нужно создавать по таблице на каждый раздел???

   
 
 автор: cheops   (10.05.2006 в 13:52)   письмо автору
 
   для: Радосвет   (09.05.2006 в 18:44)
 

>не нужно сделать так, чтобы в кажом разделе список начинался с 1 и далее, то есть так:
А для чего это потребовалось? Может имеется обходной путь... на существующем движке это реализовать будет сложно (без внесения ошибок), так как он проектировался без учёта такой потребности.

   
 
 автор: Радосвет   (10.05.2006 в 22:06)   письмо автору
 
   для: cheops   (10.05.2006 в 13:52)
 

Спасибо за ответ! :)

Например, на сайте выкладываются документы: Договора, Проекты, Заказы и т.д., разделено на разделы соответственно, и в каждом разделе нужен свой список, чтобы избежать путаницы (чтобы легче ориентироваться по записи в строке браузера)...

А в дальнейшем прикрутить mod_rewrite, так, чтобы страница http://site.com/doc/index.php?id_page=5&id_article=2 выглядела как http://site.com/doc/5/2/ ...

Если это действительно сложно переделать в этой системе, то как-нить обойдусь, но просто на будущее хотелось бы знать, как это реализовать... :)

   
 
 автор: cheops   (11.05.2006 в 01:17)   письмо автору
 
   для: Радосвет   (10.05.2006 в 22:06)
 

В этом случае первичный ключ нужно строить не на одно поле id_article, а сразу на двух полях id_part и id_article.

   
 
 автор: Радосвет   (11.05.2006 в 01:51)   письмо автору
 
   для: cheops   (11.05.2006 в 01:17)
 

cheops, большое спасибо за совет! :) А можно небольшой примерчик, как это сделать? Мне, по идее, надо править кучу файлов, отвечающих за вывод статей... И что нужно исправить в базе при этом?

   
 
 автор: cheops   (11.05.2006 в 10:31)   письмо автору
 
   для: Радосвет   (11.05.2006 в 01:51)
 

Придётся избавиться от атрибута AUTO_INCREMENT в таблице atricles, оператор CREATE TABLE для таблицы articles может выглядеть следующим образом
CREATE TABLE articles (
  id_article int(10) unsigned NOT NULL default '0',
  name tinytext NOT NULL,
  description tinytext NOT NULL,
  html_title tinytext NOT NULL,
  html_description tinytext NOT NULL,
  html_keywords tinytext NOT NULL,
  pos mediumint(9) NOT NULL default '0',
  hide enum('show','hide') NOT NULL default 'show',
  id_page tinyint(3) unsigned NOT NULL default '0',
  PRIMARY KEY  (id_article,id_page)
) TYPE=MyISAM;

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования