|
|
|
| Сделал шаблон. Переменную $tpl_name получилось пробежать циклом, а $tpl_text и $tpl_date нет.
Можно как-нибудь объединить три цикла в один или подскажите решение этой проблемки?
index.php
$query = mysql_query("SELECT * FROM `news`");
while($new = mysql_fetch_array($query)) {
$name[] = $new['name'];
$text[] = $new['text'];
$date[] = $new['date'];
}
include("template/news.tpl");
|
news.tpl
<table border="1" width="300px" cellpadding="0" cellspacing="0">
<?foreach($name as $tpl_name):?>
<tr>
<td>
<?=$tpl_name?>
</td>
<td>
<?=$tpl_text;?>
</td>
<td>
<?=$tpl_date;?>
</td>
</tr>
<?endforeach;?>
</table>
|
| |
|
|
|
|
|
|
|
для: ChieFSS
(13.11.2007 в 11:42)
| | Это свой движок или смарти юзаешь? | |
|
|
|
|
|
|
|
для: malish
(13.11.2007 в 11:45)
| | Своё | |
|
|
|
|
|
|
|
для: ChieFSS
(13.11.2007 в 11:42)
| | Можно попробывать так:
$query = mysql_query("SELECT * FROM `news`");
while($new = mysql_fetch_array($query)) {
$info[] = new array('name' => $new['name'], 'text' => $new['text'], 'date' => $new['date']);
}
include("template/news.tpl");
|
<table border="1" width="300px" cellpadding="0" cellspacing="0">
<?foreach($infoas $i):?>
<tr>
<td>
<?=$i['name']?>
</td>
<td>
<?=$i['text'];?>
</td>
<td>
<?=$i['date'];?>
</td>
</tr>
<?endforeach;?>
</table>
|
| |
|
|
|
|
|
|
|
для: malish
(13.11.2007 в 11:48)
| | а вообще нахрена создавать свой массив если $new и так содержит многомерный массив данных? вот его и проходи в своём foreach:))) | |
|
|
|
|
|
|
|
для: malish
(13.11.2007 в 11:52)
| | Спасибо. Работает.
Всмысле "$new = mysql_fetch_array($query)" вынести в шаблон вместо foreach ? | |
|
|
|
|
|
|
|
для: ChieFSS
(13.11.2007 в 11:56)
| | в foreach бежать не по $info массиву а по $new.. там все хранится в том же виде.. а $info убери:) | |
|
|
|
|
|
|
|
для: malish
(13.11.2007 в 11:59)
| | Чёто не получается | |
|
|
|
|
|
|
|
для: ChieFSS
(13.11.2007 в 12:07)
| | А что тогда с этим циклом делать?
while($new = mysql_fetch_array($query)) | |
|
|
|
|
|
|
|
для: ChieFSS
(13.11.2007 в 12:34)
| | Делайте что-то вроде
<?php
// ...
function parse_block($tpl, $block_vars)
{
while( preg_match('/<!-- BEGIN ([A-Za-z\d_]+) -->(?:\r\n)?(.*?)<!-- END \\1 -->(?:\r\n)?/s', $tpl, $m) )
{
$block = '';
$block = $this->parse_block($m[2], $block_vars);
$block_name = $m[1];
preg_match_all('/{' . $block_name . '.([A-Za-z\d_]+)}/', $block, $v, PREG_PATTERN_ORDER);
$block_vars[$block_name] = isset($block_vars[$block_name]) ? $block_vars[$block_name] : array();
$result = '';
for($a = 0; $a < count( $block_vars[$block_name] ); $a++)
{
for($i = 0, $buff = $block; $i < count( $v[1] ); $i++)
{
$replaced = array();
if( !in_array($v[1][$i], $replaced) )
{
$replaced[] = $v[1][$i];
if( isset($block_vars[$block_name][$a][$v[1][$i]]) )
{
$buff = str_replace($v[0][$i], $block_vars[$block_name][$a][$v[1][$i]], $buff);
}
else
{
$buff = str_replace($v[0][$i], '', $buff);
}
}
}
$result .= $buff;
}
$tpl = str_replace($m[0], $result, $tpl);
}
return $tpl;
}
// ...
?>
|
| |
|
|
|