цикл while не увеличивается - PullRequest
0 голосов
/ 11 апреля 2011

Есть странная проблема, что мой цикл while не увеличивается, как если бы он отображал первую категорию, а не остальные, как это:

class temp 
{
var $file;

function new_list($forum_list)
{
    foreach($forum_list as $key => $value)
    {
        $this->file = str_replace('{'.$key.'}', $value, $this->file);
    }
    return $this->file;
}

function display()
{
    echo $this->file;
}
}

 $temp = new temp();

// mysql query

while ($row_cat = mysql_fetch_array($cat)){
    $temp->new_list(array(
        'CAT_TITLE' => $row_cat['title'],
        'CAT_DESCRIPTION' => $row_cat['description']
    ));

    $cid = $row_cat['id'];

    // mysql query

    while ($row_forum = mysql_fetch_array($forum)){
        $temp->new_list(array(
            'FORUM_TITLE' => $row_forum['title'],
            'FORUM_DESCRIPTION' => $row_forum['description']
        ));
    }
}
$temp->display();

Теперь я создал шаблонизатор, и он использует массив как обычно, но отображает категорию, его описание, подкатегорию и описание только один раз, когда это первая запись. Почему так я сделал что-то не так?

EDIT: я добавил код обработчика шаблонов, он ловит файл и использует метод file_get_contents, а затем преобразует ключи в значения, и когда я использую его без движка, он работает нормально, но с движком он показывает только первый столбец.

1 Ответ

0 голосов
/ 11 апреля 2011

Попробуйте упростить это, чтобы найти ошибку.Я не вижу проблемы с тем, что вы опубликовали, но я подозреваю, что есть ошибка в логике кода, который вы не опубликовали.Попробуйте это:

<-- mysql query -->

while ($row_cat = mysql_fetch_array($cat)){
echo $row_cat['title']."<br/>";

$cid = $row_cat['id'];

<-- mysql query -->

while ($row_forum = mysql_fetch_array($forum)){
"-".$row_forum['title']."<br/>";
}
}

ОБНОВЛЕНИЕ:

Да: Здесь ваша проблема: $this->file = ... перезаписывает файл $ каждую итерацию.Вам нужно объединить результат (добавить строки вместе с.) Примерно так:

$this->file = $this->file . str_replace('{'.$key.'}', $value, $this->file);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...