Safary
Новичок
построение дерева по шаблону!
Вот начал писать функцию построения дерева по шаблону.
Тут я пощу сильно, очень сильно урезанный вариант..
вызов функции такой -
тоесть шаблон может быть любым... к примеру шаблон пусть такой:
К примеру таблица у меня такая:
==============================================
ID | PID | NAME
==============================================
1 | 0 | PROGRAMS
2 | 1 | photoshop
3 | 1 | 3ds max
4 | 1 | paint
По идее функция должна вывести строки photoshop, 3ds max, paint через шаблон.
Но выводит тока photoshop, photoshop, photoshop
Почему? Ведь str_replace меняет всё в цикле и сразу сохраняет в другую переменную результат! а если просто написать echo($ar['name']) то всё нормально выведет.
Вот начал писать функцию построения дерева по шаблону.
Тут я пощу сильно, очень сильно урезанный вариант..
PHP:
function three($tpl,$pid=1){
$q="SELECT name FROM programs WHERE pid=".$pid;
$q=mysql_query($q);
if($q){
while($ar=mysql_fetch_array($q)){
$wawa=str_replace('$name$',$ar['name'],$tpl);
echo $wawa;
}
$pid++;
three($tpl,$pid);
}
}
PHP:
three($three_tpl)
PHP:
$three_tpl='<table width="228" border="0" cellpadding="0" cellspacing="3">
<tr>
<td width="12" bgcolor="#009999"> </td>
<td width="190" bgcolor="#009999"> </td>
<td width="14" bgcolor="#009999"> </td>
</tr>
<tr>
<td bgcolor="#009999"> </td>
<td bgcolor="#CCCCCC"><div align="center">$name$</div></td>
<td bgcolor="#009999"> </td>
</tr>
<tr>
<td bgcolor="#009999"> </td>
<td bgcolor="#009999"> </td>
<td bgcolor="#009999"> </td>
</tr>
</table>'
==============================================
ID | PID | NAME
==============================================
1 | 0 | PROGRAMS
2 | 1 | photoshop
3 | 1 | 3ds max
4 | 1 | paint
По идее функция должна вывести строки photoshop, 3ds max, paint через шаблон.
Но выводит тока photoshop, photoshop, photoshop
Почему? Ведь str_replace меняет всё в цикле и сразу сохраняет в другую переменную результат! а если просто написать echo($ar['name']) то всё нормально выведет.