Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> многократный include, вроде бы так не делают... 
:(
    Опции темы
z-END
Дата 21.8.2005, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 5
Всего: 102



Вообщем кусьман кода, который берет из БД данные по определенному критерию, и выводит их на экран c помошью include:
Код

$res=mysql_query("SELECT id,template,info FROM $db_name WHERE kind_id=$v_cat") or db_err();
$ms=mysql_fetch_row($res);
$mach_count=0;
while($ms!==false)
 {
     $view_id[]=$ms[0];
     $view_template[]=$ms[1];
     $view_info[]=$ms[2];
     $ms=mysql_fetch_row($res);
     $mach_count++;
 }
db_close();
for($i = 0; $i < $mach_count; $i++)
  {
     $vt=$view_template[$i];
     $p_id=$view_id[$i];
     $p_info=$view_info[$i];
     include ("./templates/$vt");
  }
if ($mach_count==0) {echo("<b> пусто</>");}


файлы из templates содержат хтмл код с вкраплениями пхп-переменных ($p_id,$p_info), типа так:
Код

<img src="./site-imgs/div.png" width="210" height="1" /><br /><?=$p_info?></td></tr>

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



--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Mal Hack
Дата 21.8.2005, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Мамма мия...
До цикла берешь шаблон через file_get_contents или оформляшь его PHP функциями и один раз подключаешь через include до цикла. Затем в выводе используешь либо текст, либо эту функцию.
PM ICQ   Вверх
z-END
Дата 21.8.2005, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 5
Всего: 102



Mal Hack а можно поподробнейsmile
используя file_get_contents я получу в массив содержимое нужного файла... потом использывать его в цикле? я почему-то думаю что выводится в браузере тогда будет так:
Цитата
<?=$p_info?>
, а не значение этой переменной, которое к томуже в цикле каждый раз меняется.



--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Mal Hack
Дата 21.8.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



z-END делашеь так:
Код

  function skin_show( $name , $age )
   {
    return <<<EOF
    <span class='link'>инфо</span><br />
    <div id='listing_stat'>
    Имя: {$name}, Возраст: {$age}.<br />
    </div>
    </span>
    <br />
EOF;
   }

//В скрипте один раз include
// В цикле:
for($i = 0; $i < $mach_count; $i++)
  {
     $name = ...
     $age = ...
     print skin_show( $name , $age );
  }

PM ICQ   Вверх
z-END
Дата 21.8.2005, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 5
Всего: 102



Фсеравно непонялsmile
ф-ция skin_show выводит данные по уже имеющимуся в нем шаблону, а мне нужно выводить каждый блок данных в виде и оформлении содержащемся в файле $template.


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Mal Hack
Дата 21.8.2005, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



1. Что тебе мешает свое оформление в такую же функцию оформить?
PM ICQ   Вверх
z-END
Дата 21.8.2005, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 5
Всего: 102



1. ну хотя-бы то что шаблонов много, и каждую делть в функцию будет напряжно.
2. удобство использования - для добавления нового (или изменении существующего) шаблона придется переписывать (дописывать) код, заливать на сервер... в моем варианте проскто собрать (изменить) шаблон в хтмл редакторе.


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Mal Hack
Дата 21.8.2005, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Зато работает быстрее... И на самом деле редактировать намного удобнее. Шаблоны редко когда меняются на практике.

PM ICQ   Вверх
z-END
Дата 21.8.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 5
Всего: 102



Цитата(Mal @ 21.8.2005, 17:24)
И на самом деле редактировать намного удобнее. Шаблоны редко когда меняются на практике.

а если этим будет заниматься человек незнающих пхп, в случае если он напортачит - неработющий сайт, в моем варианте просто испорченый шаблон...

ну хорошо... допустим шаблонов около 100, тогда как поступить? писать 100 ф-ций show_skinXXX(); или как?

я просто суть немного непонимаюsmile




--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Mal Hack
Дата 21.8.2005, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(z @ 21.8.2005, 17:33)
а если этим будет заниматься человек незнающих пхп, в случае если он напортачит - неработющий сайт, в моем варианте просто испорченый шаблон...

1. Понять по названию функйции что она делает - можно.
2. А как он его запорит? Сказать ему, что между <<<EOF и EOF; пиши любой гипертекст.

Цитата(z @ 21.8.2005, 17:33)
писать 100 ф-ций show_skinXXX(); или как?

Как хошь так и называй, главное чтоб понятно было.
PM ICQ   Вверх
Phantom1
Дата 22.8.2005, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 25.7.2005

Репутация: 1
Всего: 2



Интересно знать а как ты собирался делать шаблоны динамического сайта? и его мог переделывать незнающий програмирования человек?

как ты собирался избавиться от этого(твой код шаблона)
Цитата
<img src="./site-imgs/div.png" width="210" height="1" /><br /><?=$p_info?></td></tr>


а насчет функций, то правильно говорят
делый через функции
PM MAIL   Вверх
z-END
Дата 22.8.2005, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 5
Всего: 102



Цитата(Phantom1 @ 22.8.2005, 10:04)
Интересно знать а как ты собирался делать шаблоны динамического сайта? и его мог переделывать незнающий програмирования человек?

програмирование и верстка разные вещи... WYSIWYG.

Цитата(Mal @ 21.8.2005, 18:39)
А как он его запорит? Сказать ему, что между <<<EOF и EOF; пиши любой гипертекст.

да запросто , где-нить случайно скобку (точку с запятой) снесет и всеsmile

Цитата(Mal @ 21.8.2005, 18:39)
Как хошь так и называй, главное чтоб понятно было.

да с названиями-то все понятно, проблем нетsmile я сам алгоритм понять все немогу...
как реализовать данную функцию чтобы она выводила текст по определенным шаблонам?
использовать if на 100 проверок?

и всетаки почему нельзя просто использовать include?


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Mal Hack
Дата 22.8.2005, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(z @ 22.8.2005, 13:16)
да запросто , где-нить случайно скобку (точку с запятой) снесет и всеsmile

При чем тут скобки? Он побит ьтвой шаблон сможет только если EOF; поставит раньше, чем надо.

Цитата(z @ 22.8.2005, 13:16)
использовать if на 100 проверок?

Зачем? Шаблон делается для общего вывода. А внутри уже ты уже на местах где надо, указываешь сгенеренный ранее текст.

Цитата(z @ 22.8.2005, 13:16)
и всетаки почему нельзя просто использовать include?

1. Так не делают.
2. Тормоза smile
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0854 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.