[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Шаблонизатор в while
mid
Не работает этот код:
В чем причина?

index.php

<?php

include("functions/mysql.php");

connect("localhost","cms","cms","cms");

whilesql("SELECT * FROM `project` ORDER BY `id` DESC");

?>

functions/mysql.php

<?php

function
connect($host,$user,$password,$table)
{
$mysql_C = mysql_connect($host,$user,$password);
mysql_select_db($table,$mysql_C);
}

function whilesql($sql)
{
$mysql_Q = mysql_query($sql);
while($mysql = mysql_fetch_array($mysql_Q))
{
$name = $mysql['name'];
$miniinfo = $mysql['miniinfo'];
$biginfo = $mysql['biginfo'];
$date = $mysql['date'];
$save = $mysql['save'];
$tpl = file_get_contents("template/project.tpl");
str_replace('{NAME}',$name,$tpl);
str_replace('{MINIINFO}',$miniinfo,$tpl);
str_replace('{BIGINFO}',$biginfo,$tpl);
str_replace('{DATE}',$date,$tpl);
str_replace('{SAVE}',$save,$tpl);
}
}


?>

template/project.tpl

<div>
<p><b>
{NAME}</b></p>
<p><i>
{MINIINFO}</i></p>
<p><u>
{BIGINFO}</u></p>
<p><s>
{SAVE} {DATE}</s></p>
</div>





Спустя 1 минута, 28 секунд (3.01.2012 - 22:24) Winston написал(а):

 ! 

М
Измени название темы на нормальное! иначе закрою!
Winston

Спустя 24 секунды (3.01.2012 - 22:24) mid написал(а):
Ошибок не выдает,но и данные не выводит!
В файле functions/mysql.php в функции while косяк мне кажется!

Спустя 1 минута, 7 секунд (3.01.2012 - 22:25) Winston написал(а):
Ты из ф-и должен вернуть с помощью return те данные, с которыми ты произвел какие-то манипуляции.

Спустя 2 минуты, 4 секунды (3.01.2012 - 22:28) Winston написал(а):
Свернутый текст
function whilesql($sql)
{
$mysql_Q = mysql_query($sql);
$data = '';
$tpl = file_get_contents("template/project.tpl");

while($mysql = mysql_fetch_array($mysql_Q))
{
$name = $mysql['name'];
$miniinfo = $mysql['miniinfo'];
$biginfo = $mysql['biginfo'];
$date = $mysql['date'];
$save = $mysql['save'];

$data .= str_replace('{NAME}',$name,$tpl);
$data .= str_replace('{MINIINFO}',$miniinfo,$tpl);
$data .= str_replace('{BIGINFO}',$biginfo,$tpl);
$data .= str_replace('{DATE}',$date,$tpl);
$data .= str_replace('{SAVE}',$save,$tpl);
}

return $data;
}

Вызов
echo whilesql("SELECT * FROM `project` ORDER BY `id` DESC");

Спустя 1 минута, 52 секунды (3.01.2012 - 22:29) sharki написал(а):
Winston
не, у тебя ошибка smile.gif У тебя будет множественное дублирование шаблона)

Спустя 1 минута, 49 секунд (3.01.2012 - 22:31) mid написал(а):
sharki
Так дублирование и нужно!Тут шаблон не всего сайта а канкрето для while!

Спустя 2 минуты, 12 секунд (3.01.2012 - 22:33) sharki написал(а):
mid
По моему тут каждая итерация будет увеличивать текст в 5 раз

Спустя 2 минуты, 39 секунд (3.01.2012 - 22:36) mid написал(а):
Рабит,но криво..Прикол в том,то что он расстягивает пункты..Например в первом выводе только {NAME} заменит на переменную,в следущем только {MINIINFO} и тд..Херня какая-то..

Спустя 40 секунд (3.01.2012 - 22:37) Winston написал(а):
Цитата (sharki @ 3.01.2012 - 21:29)
У тебя будет множественное дублирование шаблона)

Хм.. кажется ты прав...

Спустя 59 секунд (3.01.2012 - 22:38) mid написал(а):
У меня уже было однажды такое..В принципе я знаю как это решить..Сейчас сделаю и кину код!

Спустя 6 минут, 39 секунд (3.01.2012 - 22:44) sharki написал(а):
Вот можешь взять на заметку мою функцию

 function parse_tpl($txt,$arr_replace) {
$replace_txt = array(); // массив с указатаелями на замену
$insert_txt = array(); // массив для замены указателей

foreach ($arr_replace as $key => $value) {
$replace_txt[] = $key;
$insert_txt[] = $value;
}

return str_replace($replace_txt, $insert_txt, $txt);
}



function whilesql($sql)
{
$mysql_Q = mysql_query($sql);
$data = '';
$tpl = file_get_contents("template/project.tpl");

while($mysql = mysql_fetch_array($mysql_Q))
{
$name = $mysql['name'];
$miniinfo = $mysql['miniinfo'];
$biginfo = $mysql['biginfo'];
$date = $mysql['date'];
$save = $mysql['save'];

$data .= parse_tpl($tpl,array(
'{MINIINFO}'=>$miniinfo,
'{BIGINFO}' =>$biginfo,
'{DATE}' => $date,
'{SAVE}' => $save
));
}

return $data;
}


Спустя 1 минута, 17 секунд (3.01.2012 - 22:46) mid написал(а):
function whilesql($sql){
$mysql_Q = mysql_query($sql);
while($mysql = mysql_fetch_array($mysql_Q))
{
$name = $mysql['name'];
$miniinfo = $mysql['miniinfo'];
$biginfo = $mysql['biginfo'];
$save = $mysql['save'];
$date = $mysql['date'];
$tpl_name = file_get_contents("template/project/name.tpl");
$while .= str_replace('{NAME}',$name,$tpl_name);
$tpl_miniinfo = file_get_contents("template/project/miniinfo.tpl");
$while .= str_replace('{MINIINFO}',$miniinfo,$tpl_miniinfo);
$tpl_biginfo = file_get_contents("template/project/biginfo.tpl");
$while .= str_replace('{BIGINFO}',$biginfo,$tpl_biginfo);
$tpl_save = file_get_contents("template/project/save.tpl");
$while .= str_replace('{SAVE}',$save,$tpl_save);
$tpl_date = file_get_contents("template/project/date.tpl");
$while .= str_replace('{DATE}',$date,$tpl_date);
}
return $while;
}


_____________
По любому вопросу : programmer-php@mail.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.