Forum Webscript.Ru

Программирование => PHP => Тема начата: zumer от 13 Февраля 2004, 13:45:12

Название: циклические шаблоны
Отправлено: zumer от 13 Февраля 2004, 13:45:12
Не удается вывести в выпадающем меню содержимое БД!
Частью кода я объявил циклический шаблон, он имеет форму выпадающего меню,(данные
считываются с БД) но мне не удается вывести в окне содержимое таблици БД.

//объявление циклического шаблона
//часть1
     
           Наука
           
           
/*
Science=поле таблици
scitable=таблица
часть2
*/
 $result=mysql_query("select Science from scitable");
    $Sci=array();
    $i=0;
    while($row=mysql_fetch_object($result))
     {
     $Sci[$i][\'scicol\']=$row->Science;
     $i++;
     }
//часть3
$tpl=new template;//объект класса template
$tpl->load_file(\'template\',\'template.html\');//загрузка файла шаблона
$tpl->parse_loop(\'template\',\'Sci\');       //заполнение циклического шаблона
$tpl->pprint(\'template\');

Помогите пожалуйста
Название: циклические шаблоны
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 13:58:48
Цитировать
zumer:
объявление циклического шаблона

объявление , говоришь?
и где же объявлено, что он циклический?
в уме?
Название: циклические шаблоны
Отправлено: Макс от 13 Февраля 2004, 14:01:54
zumer
1. никто не знает что за шаблонизатор ты используешь
2. циклические шаблоны (ИМХО правильнее их называть блоками) обычно имеют примерно такой вид:





это на пример phplib. Суть в том, что часть шаблона, которая буде повторяться несколько раз должна быть ограничена какими-то ограничителями (в данном случае и )
Иначе шабюлонизатор не определит, какую часть нужно циклически повторять
Название: циклические шаблоны
Отправлено: CGVictor от 13 Февраля 2004, 15:56:22
[OFF]RomikChef
А ты про шаблоны спрашивал... :)
[/OFF]
Название: циклические шаблоны
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 18:12:03
CGVictor если два дурака путаются в понятиях, это еще не значит, что они оба правы.
Название: циклические шаблоны
Отправлено: zumer от 13 Февраля 2004, 18:47:56
RomikChef

Думаю этого достаточно, вот вам объявление (LOOP)
У себя в скрипте объявление шаблона я писал, но в примере забыл
дописать, но все равно это не меняет для меня ситуации. Если
у ВАС есть желание мне помочь, то помогите пожалуйста
своим примером использования ц.шаблона.
Название: циклические шаблоны
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 19:09:43
ну спасибо, родной!
одолжение ты МНЕ сделал, да?
Нате вам, вот вам реальный код, подавитесь.
Действительно, для тебя это ситуации не меняет.
Какая разница, какой код писать в вопросе.
можно вообще поэму Пушкина написать, да?

то есть, предполагается, что я, не зная даже названия шаблонного движка, отвечу, как в нем организуются шаблоны?
Спасибо, конечно, за веру в мой гений, но увы, телепатия пока мне неподвластна.
или ты считаешь, что шаблоны - это некая функция. встроенная в пхп?
Вынужден тебя разочаровать.
Шаблонные движки - это совершенно бесполезные надстройки над пхп. Их существуют десятки, если не сотни. оэтому задавать вопрос по шаблонам не указывая, какой именно ты используешь - мягко говоря, не очень умно.

Если ты хочешь получать ответы на форуме, то не надо путать его с волшебной палочкой.
Вопросы надо задавать четко, предоставляя всю информацию.
если тебя о ччем-то спросили, то не швырять ответ, как одолжение.
Никому здесь ответ на твой ламерский вопрос не нужен, кроме тебя.

$tpl->parse_loop(\'template\',\'loop_Sub_R\');
я, видя этот шаблон в первый раз - и то сообразил.
Название: циклические шаблоны
Отправлено: Макс от 13 Февраля 2004, 19:13:24
Цитировать
zumer:
но все равно это не меняет для меня ситуации

афигеть.

zummer
когда ты приходишь на форум за помощью, то будь добр, продумывай свои вопросы и пиши без опечаток. Иначе это просто неуажение к отвечающим. И никто тебе отвечать не будет.


Тебя интересует любой пример "циклического шаблона" или пример с использованием твоего класса template?
Название: циклические шаблоны
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 19:13:27
Цитировать
zumer:
у ВАС есть желание мне помочь, то помогите пожалуйста
своим примером использования ц.шаблона.

пожалуйста:


Название: циклические шаблоны
Отправлено: zumer от 13 Февраля 2004, 20:02:58
Макс
Цитировать
пиши без опечаток
 это просто неуажение к отвечающим

Я пишу с опечатками потому-что не могу набрать нужный мне скрипт.
Поставлена  передо мной следующея задача нужно чтоб  скрипт  выводил в выпадающем меню "названия наук ", которые генерировалась с запроса к БД, потом в следующем выпадающем меню можна было выбрать "раздел науки"(генерируется  с БД), ну  а  потом можна было-бы выбырать существующие статьи этого "раздела науки", и при этом выводятся: автор, ключевые слова, описание статьи возле ее названия, тоисть статьи.
Название: циклические шаблоны
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 20:05:54
кстати, я, похоже, прогнал.
тут либо
$tpl->parse_loop(\'Sci\',\'loop_Sub_R\');
но скорее -
$tpl->parse_loop(\'loop_Sub_R\',\'Sci\');
Название: циклические шаблоны
Отправлено: zumer от 13 Февраля 2004, 20:21:57
RomikChef
Правильный вариант
$tpl->parse_loop(\'template\',\'loop_Sub_R\');
Название: циклические шаблоны
Отправлено: zumer от 13 Февраля 2004, 21:18:27
RomikChef
Задача в том чтобы можна было вывести в выпадающем меню все науки,какую-то выберем,
потом в следующем выпадающем меню выберем подраздел науки, ну а потом увидим все статьи
данной науки и поднауки с ее  автором, описанием, языком.
В таблицах индексируются "наука" и "подраздел науки"
//scitable=название таблици
ID|science       
1 |Политология
2 |История
3 |ММДО

//sci_sub=таблица
ID|sci|sub|name_sub
1   2   1   Всемирная история   
2   2   2   История Украины
3   1   1   Лидерство в политике   
//sci=2 это История в табл.1

//maintb основная таблица
ID|sci|sub|author     |description       |language
1   1   1  Кучма       статья президента   украинский
2   2   2  Грушевский  глава Ц.Рады        русский

Для вывода содержимого таблиц я пытался использовать ц.шаблоны, но это не удалось.
ПОЖАЛУЙСТА ПОМОГИТЕ ВЫВОДОМ ДАННЫХ, над этой проблемой я уже неделю голову "ламаю".
Название: циклические шаблоны
Отправлено: Меняздесьдавнонет от 13 Февраля 2004, 22:51:16
zumer
так.
вот такой вопрос на форуме - просто можно всем в пример ставить.
итак, я в нем вижу два подвопроса (это, кстати, недостаток)
1. как вывести выпадающий список.
2. как в зависимости от первого выбрать второй.

Начнем с первого.
а чем тебя не устраивает вариант


Наука




И все.
вот тебе вывод списка. в ОДИН шаг.
Я понимаю, с шаблонами круто.
но сначала надо разобраться с тем, как это все работает.
Разобрался?
Один список сформировать можешь?

2 вопрос.
здесь сложнее.
В общем, у тебя есть два пути.
1. каждый выбор делать на следующей странице.
выбрал первый выбор, отправил. получил второй, выбрал, отправил, получил третий, выбрал, дальше пошел.
2. заранее все варианты залить в яваскрипт и формировать селекты яваскриптом.
Название: циклические шаблоны
Отправлено: zumer от 26 Февраля 2004, 00:09:15
RomikChef
Cледует сделать вывод такого плана, как это сделать:
наука1
поднаука1
статья1
статья2
поднаука2
статья1
статья2
наука2
...
//используемая БД смотреть выше
Нужно использовать пару циклов, но я пока не догадался
как это сделать.
За помощь благодарен!
Название: циклические шаблоны
Отправлено: Меняздесьдавнонет от 26 Февраля 2004, 00:19:27
я тоже думаю, что пару.
но ты сделай пока три.
для практики и простоты.
цикл, выводящий науки, можешь сделать?
если нет - учись.
если да, то кто тебе мешает внутрь его вставить цикл, выводящий поднауки?
Название: циклические шаблоны
Отправлено: zumer от 27 Февраля 2004, 19:02:06
RomikChef
1)Вывод всех наук с БД прост,
Вывод всех поднаук (какой либо науки) с БД также прост,
//Пример
...
//выводи все науки
$query=mysql_query("select * From scitable");
while($sci=mysql_fetch_array($query))
   {print $sci[science]."
";}
//выводи все поднауки первой науки
$query1=mysql_query("SELECT * FROM sci_sub where sci=\'1\' ");
    while ($nsub=mysql_fetch_array($query1))
    {print $nsub["name_sub"]."
";}
//выводи авторов поднауки1 науки1
$query2=mysql_query("SELECT * FROM maintb where sci=\'1\' AND sub=\'1\' ");
    while ($auth=mysql_fetch_array($query2))
    {print $auth["author"]."
";}
...
Но загвоздка в том, что в БД много наук, поднаук,...
Поэтому прописывать для каждой науки или поднауки свои
SELECT-ы не хорошо, слишком громоздко.
Возможно я неправильно понял RomikChef  и сделал ложный вывод о испрльзовании циклов (возможно можна обойтись и без многих селектов).  

2)Использование EXPLAIN пока-что затруднительное,
если кто-нибуть с этим знаком, то прошу помочь с выводом
наук, поднаук в порядке деления на более меньшие.
За пример БД можна взять ранее в этом разделе мной
набранную.
Буду очень рад если мне покажут на примере использование
EXPLAIN, это важно с точки зрения получения навыков работы
с ним (что позволит набраться опыта малоопытному).
Название: циклические шаблоны
Отправлено: Меняздесьдавнонет от 28 Февраля 2004, 01:07:45
Цитировать
внутрь его вставить цикл

неужели я настолько непонятно пишу?