Помощь по DLE

Прокуратор

Новичок
Репутация
0 / 165
В общем... У меня клан сайт поставленный на ДЛЕ 9,4
Мне надо, что бы в блоке выдавались ссылки на другие клан сайты, которые записаны в базе.
Теперь проблемма: Скрипт выдает только клан, с максимальным значением id
Скрипт настроен на отображение того, что в переменной $archive
Вот сколько ковыряю - не получается((((

Вот код:

Код:
<?php

if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

    $db->query( "SELECT * FROM tribes ORDER BY name");
        while ( $DATA = $db->get_row() ) {
    
       $name = $DATA['name'];
    $clan_img = $DATA['ico'];
    $url = $DATA['url'];
    $clan_i = "<img src='http://www.newrpg.ru/diz/img_klan/$clan_img.gif' alt='$name' border=0>";
    $echo = "[url="$url"]$clan_i[size="1"][b]$name[/b][/size][/url]
";
    $archive="$echo";

    }
    
?>
 
А где собственно строка отвечающая за вывод данных?
 
Код:
<?php

if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

$db->query( "SELECT * FROM tribes ORDER BY name");
while ( $DATA = $db->get_row() ) {
    $name = $DATA['name'];
    $clan_img = $DATA['ico'];
    $url = $DATA['url'];
    $clan_i = "<img src='http://www.newrpg.ru/diz/img_klan/".$clan_img.".gif' alt='".$name."' border=0>";
    $echo = "<a href='".$url."' target=_blank title='".$name."'>".$clan_i."[size="1"][b]".$name."[/b][/size]</a>
";
    $archive[] = $echo;
}
?>

А на месте вывода поставь код:
Код:
<? foreach($archive as $text) echo $text; ?>



Не уверен что сработает ибо мало данных и делем наощупь (как сказал Insallah, не указано где вывод). Да и программирование не есть гуд знаю :)
 
А где собственно строка отвечающая за вывод данных?

Вот подключение к модулю
Код:
require_once ROOT_DIR . '/engine/clans_archive.php';

Вот подключение самого скрипта
Код:
$tpl->set('{clans_archive}', $archive);

И в самом шаблоне для вызова чтения данных
Код:
{clans_archive}

Он хочет отображать только максимальный id записи, когда мне надо что бы отображало все....

Код:
<?php

if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

$db->query( "SELECT * FROM tribes ORDER BY name");
while ( $DATA = $db->get_row() ) {
    $name = $DATA['name'];
    $clan_img = $DATA['ico'];
    $url = $DATA['url'];
    $clan_i = "<img src='http://www.newrpg.ru/diz/img_klan/".$clan_img.".gif' alt='".$name."' border=0>";
    $echo = "<a href='".$url."' target=_blank title='".$name."'>".$clan_i."[size="1"][b]".$name."[/b][/size]</a>
";
    $archive[] = $echo;
}
?>

А на месте вывода поставь код:
Код:
<? foreach($archive as $text) echo $text; ?>



Не уверен что сработает ибо мало данных и делем наощупь (как сказал Insallah, не указано где вывод). Да и программирование не есть гуд знаю :)

Я немного не понял, как тогда будет работать тот код (<? foreach($archive as $text) echo $text; ?>), ведь данных об этой переменной не будет в самом файле.
И не понял, зачем переменно $archive поставились квадратные скобки..

А вообще - хорошо бы понять, как в переменную вставить оператор echo или print...
 
А что, вот так не работает?
Код:
$db->query( "SELECT * FROM tribes ORDER BY name");
while ( $DATA = $db->get_row() ) {
    echo "
        <a href='".$DATA['url']."' target=_blank title='".$DATA['name']."'>
            <img src='http://www.newrpg.ru/diz/img_klan/".$DATA['ico'].".gif' alt='".$DATA['name']."' border=0>
            [size="1"][b]".$DATA['name']."[/b][/size]
        </a>

    ";
}
 
Код:
<?php

if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

$db->query( "SELECT * FROM tribes ORDER BY name");
while ( $DATA = $db->get_row() ) {
    $name = $DATA['name'];
    $clan_img = $DATA['ico'];
    $url = $DATA['url'];
    $clan_i = "<img src='http://www.newrpg.ru/diz/img_klan/".$clan_img.".gif' alt='".$name."' border=0>";
    $echo = "<a href='".$url."' target=_blank title='".$name."'>".$clan_i."[size="1"][b]".$name."[/b][/size]</a>
";
    $archive .= $echo;
}
?>

Insallah, так работает, но так уж устроена DLE: шаблоны в одном месте, код в другом, и шаблоны не рекомендуется смешивать с кодом.

Прокуратор, если у тебя такой вывод, то просто замени свой код на мой. У тебя скрипт выводит переменную $archive, в которую идет запись каждый цикл, т.е. переменная будет содержать то что и получала в последнем цикле. Перед равно поставил точку и теперь она будет содержать все.
 
Код:
<?php

if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

$db->query( "SELECT * FROM tribes ORDER BY name");
while ( $DATA = $db->get_row() ) {
    $name = $DATA['name'];
    $clan_img = $DATA['ico'];
    $url = $DATA['url'];
    $clan_i = "<img src='http://www.newrpg.ru/diz/img_klan/".$clan_img.".gif' alt='".$name."' border=0>";
    $echo = "<a href='".$url."' target=_blank title='".$name."'>".$clan_i."[size="1"][b]".$name."[/b][/size]</a>
";
    $archive .= $echo;
}
?>

Insallah, так работает, но так уж устроена DLE: шаблоны в одном месте, код в другом, и шаблоны не рекомендуется смешивать с кодом.

Прокуратор, если у тебя такой вывод, то просто замени свой код на мой. У тебя скрипт выводит переменную $archive, в которую идет запись каждый цикл, т.е. переменная будет содержать то что и получала в последнем цикле. Перед равно поставил точку и теперь она будет содержать все.

Спасибо большое, работает. Спасибо тыкаю во всех сообщениях написанные здесь)) Заслужил *wink*
 

Похожие темы

Сверху