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

Форум MySQL

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

 

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

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

тема: Не будет ли тормозов?
 
 автор: Max Vasin   (19.07.2008 в 10:04)   письмо автору
 
 

Хотелось бы реализовать следующую вещь.
На странице находятся различные блоки (блок новостей, блок опроса, и т.д.).
Но что бы не редактировать постоянно расположение блоков, решил сделать следующим образом:

создал таблицу со страницами
CREATE TABLE `Pages` (
 `n_page` smallint(6) NOT NULL auto_increment,
 `NamePage` varchar(50) NOT NULL default '',
 PRIMARY KEY  (`n_page`),
 UNIQUE KEY `NamePage` (`NamePage`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=19 ;


создал еще две таблицы
CREATE TABLE `manager` (
 `id_punkt` smallint(6) NOT NULL auto_increment,
 `name_punkt` varchar(20) NOT NULL default '',
 `punkt_put` varchar(30) NOT NULL default '',
 PRIMARY KEY  (`id_punkt`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=8 ;

в которой
`name_punkt` — имя которое бдет отображаться в заголовке блока
`punkt_put` — путь откуда нужно будет инклудить файл

и

CREATE TABLE `content` (
 `id_cont` smallint(5) unsigned NOT NULL auto_increment,
 `id_pages` smallint(5) unsigned default NULL,
 `id_punkt` smallint(5) unsigned default NULL,
 `position` enum('L','R','C') default NULL,
 `show` enum('Y','N') default NULL,
 UNIQUE KEY `id_cont` (`id_cont`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=18 ;


где `id_pages` — номер страницы (т.е. Pages.n_page=content.id_pages)
`id_punkt` — номер блока (т.е. manager.id_punkt=content.id_punkt)
`position` — расположение на странице (слево, справо, по центру)
`show` — отображать или нет

затем результат запроса помещаю в массив
$querycontent=«SElECT manager.punkt_put,manager.name_punkt, content.position FROM content,pages,manager where pages.NamePage='».$_SERVER['PHP_SELF'].«' and pages.n_page=content.id_pages and content.id_punkt=manager.id_punkt and content.show='Y'»;
$q_content=mysql_query($querycontent) or die(mysql_error()); 
while ($rower=mysql_fetch_array($q_content)) {
SWITCH ($rower['position']){
case 'R':
$rigthcontent[$rower['name_punkt']]=$rower['punkt_put'];
break;
case 'C':
$centercontent[$rower['name_punkt']]=$rower['punkt_put'];
break;
case 'L':
$leftcontent[$rower['name_punkt']]=$rower['punkt_put'];
break;
}}


создал класс для вывода(где $rus_name название блока т.е. manager.name_punkt; и $loads путь к файлу, т.е. manager.punkt_put)

class manager_content{
FUNCTION load_content($rus_name,$loads){
echo «<TR>\n<TD vAlign=\»top\«>.$rus_name.</TD></TR>
<TR><TD vAlign=\»top\« class=\»tn\«>»;include($loads);
echo «</td></tr>»;
echo «<TR><TD ><IMG height=\»4\« src=\»image/spacer.gif\« width=\»100%\«></TD></TR>»;
}}

и соответственно вывод уже на страницу
foreach($leftcontent as $k=>$v){
$content->load_content($k,$v);
}


вопрос: не будет ли сие тормозить?
какие могут быть другие варианты решения?

----
Regards, Max Vasin.

   
Rambler's Top100
вверх

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