Вывод тем форума и библиотеки на главную

2.71K
.

ДоХтор,

// вывод на главную форума и библиотеки 
function LastNotes($switch = 'F', $lmt = 5) {
    if ($switch == 'F' && intval($lmt) > 0) {
        $sql = "SELECT id, text FROM forum WHERE type = 't' ORDER BY time DESC LIMIT $lmt";
    } elseif ($switch == 'L' && intval($lmt) > 0) {
        $sql = "SELECT id, name, count_views, count_comments FROM library_texts 
            WHERE premod = 1 ORDER BY time DESC LIMIT $lmt";
    } else {
        return false;
    }
    $res = mysql_query($sql) or die (mysql_error());
    $out = ''; $i = 0;
    while ($row = mysql_fetch_assoc($res)) {
        if ($switch == 'F') {
            $out .= ($i % 2 ? '<div class="news">' : '<div class="news">') .
                '<a href="/forum/?id='. $row['id'] .'">'. $row['text'] .'</a></div>';
        } elseif ($switch == 'L') {
            $out .= ($i % 2 ? '<div class="news">' : '<div class="news">') .
                '<a href="/library/?id='. $row['id'] .'">'. $row['name'] .'</a></div>';
        }
        $i++;
    }
    return $out;
}
.

WPeople, Это ведь не весь код, ты написал только описание функции, а нужно написать ещё и её вызов с соответствующими параметрами. Например:

echo LastNotes('L');     //Последние 5 статей библиотеки
echo LastNotes('L', 2);  //Последние 2 статьи библиотеки

echo LastNotes('F', 10); //Последние 10 тем форума
И так далее.
.

ДоХтор, Вот так?

// вывод на главную форума и библиотеки
function LastNotes($switch = 'F', $lmt = 5) {
if ($switch == 'F' && intval($lmt) > 0) {
$sql = "SELECT id, text FROM forum WHERE type = 't' ORDER BY time DESC LIMIT $lmt";
} elseif ($switch == 'L' && intval($lmt) > 0) {
$sql = "SELECT id, name, count_views, count_comments FROM library_texts
WHERE premod = 1 ORDER BY time DESC LIMIT $lmt";
} else {
return false;
}
$res = mysql_query($sql) or die (mysql_error());
$out = ''; $i = 0;
while ($row = mysql_fetch_assoc($res)) {
if ($switch == 'F') {
$out .= ($i % 2 ? '<div class="news">' : '<div class="news">') .
'<a href="/forum/?id='. $row['id'] .'">'. $row['text'] .'</a></div>';
} elseif ($switch == 'L') {
$out .= ($i % 2 ? '<div class="news">' : '<div class="news">') .
'<a href="/library/?id='. $row['id'] .'">'. $row['name'] .'</a></div>';
}
$i++;
}
return $out;
}
echo LastNotes('L', 2); //Последние 2 статьи библиотеки

echo LastNotes('F', 10); //Последние 10 тем форума

.
# WPeople (26.07.2016 / 22:18)
ДоХтор, Вот так?
Вот так
.

ДоХтор, Спасибо

.
КИДАЛА!!! Дел не иметь!
# ДоХтор (26.07.2016 / 22:54)
Вот так
а почему не добавить проверку на наличие записей? и при отсутствии выводить мол записей пока нет
.

ДоХтор, не знаешь как сделать как на скрине счетчик и рядом ник который оставил последний пост на теме форума

Прикрепленные файлы:
.

WPeople, с позволения ДоХтора

++++++ (+/-)
function LastNotes($switch = 'F', $lmt = 5) {
    if ($switch == 'F' && intval($lmt) > 0) {
        $out = '<div class="bmenu">Последние <b>'. $lmt .'</b> тем форума</div>';
        $sql = "SELECT forum.id, forum.text, users.name FROM forum JOIN users ON forum.user_id = users.id AND type = 't' ORDER BY time DESC LIMIT $lmt";
    } elseif ($switch == 'L' && intval($lmt) > 0) {
        $out = '<div class="bmenu">Последние <b>'. $lmt .'</b> статей библиотеки</div>';
        $sql = "SELECT id, uploader_id, uploader, name, count_views, count_comments FROM library_texts 
            WHERE premod = 1 ORDER BY time DESC LIMIT $lmt";
    } else {
        return false;
    }
    $res = mysql_query($sql) or die (mysql_error());
    $i = 0;
    while ($row = mysql_fetch_assoc($res)) {
        if ($switch == 'F') {
            $out .= ($i % 2 ? '<div class="list2">' : '<div class="list1">') .
                '<a href="/forum/?id='. $row['id'] .'">'. $row['text'] .'</a>&nbsp;(' . $row['name'] . ')</div>';
        } elseif ($switch == 'L') {
            $color_views = ($row['count_views'] > 0 ? 'green' : 'red');
            $color_comments = ($row['count_comments'] > 0 ? 'green' : 'red');
            $out .= ($i % 2 ? '<div class="list2">' : '<div class="list1">') .
                '<a href="/library/?id='. $row['id'] .'">'. $row['name'] .'</a>' .
                '<div class="topmenu">просмотры: <span style="color:'. $color_views .'">'.
                $row['count_views'] .'</span> комментарии: <span style="color:'. $color_comments .'">'.
                $row['count_comments'] .'</span> автор: 
                <a href="users/profile.php?user=' . $row['uploader_id'] . '">' . $row['uploader'] . '</a></div></div>';
        }
        $i++;
    }
    return $out;
}
.
Str@nnik

ну и такое еще, с проверкой на наличие тем/статтей

+++++ (+/-)
function LastNotes($switch = 'F', $lmt = 5) {
    if ($switch == 'F' && intval($lmt) > 0) {
        $sql = "SELECT COUNT(*) FROM forum WHERE type = 't'";
    } elseif ($switch == 'L' && intval($lmt) > 0) {
        $sql = "SELECT COUNT(*) FROM library_texts";
    } else {
        $out = FALSE;
    }
    $total = mysql_result(mysql_query($sql), 0);
    if ($total) {
        if ($switch == 'F') {
            $out = '<div class="bmenu">Последние <b>'. $lmt .'</b> тем форума</div>';
            $sql = "SELECT forum.id, forum.text, users.name FROM forum JOIN users ON forum.user_id = users.id AND type = 't' ORDER BY time DESC LIMIT $lmt";
        } elseif ($switch == 'L') {
            $out = '<div class="bmenu">Последние <b>'. $lmt .'</b> статей библиотеки</div>';
            $sql = "SELECT id, uploader_id, uploader, name, count_views, count_comments FROM library_texts 
            WHERE premod = 1 ORDER BY time DESC LIMIT $lmt";
        } else {
            $out = FALSE;
        }
        $res = mysql_query($sql) or die (mysql_error());
        $i = 0;
        while ($row = mysql_fetch_assoc($res)) {
            if ($switch == 'F') {
                $out .= ($i % 2 ? '<div class="list2">' : '<div class="list1">') .
                    '<a href="/forum/?id='. $row['id'] .'">'. $row['text'] .'</a>&nbsp;(' . $row['name'] . ')</div>';
            } elseif ($switch == 'L') {
                $color_views = ($row['count_views'] > 0 ? 'green' : 'red');
                $color_comments = ($row['count_comments'] > 0 ? 'green' : 'red');
                $out .= ($i % 2 ? '<div class="list2">' : '<div class="list1">') .
                    '<a href="/library/?id='. $row['id'] .'">'. $row['name'] .'</a>' .
                    '<div class="topmenu">просмотры: <span style="color:'. $color_views .'">'.
                    $row['count_views'] .'</span> комментарии: <span style="color:'. $color_comments .'">'.
                    $row['count_comments'] .'</span> автор: 
                <a href="users/profile.php?user=' . $row['uploader_id'] . '">' . $row['uploader'] . '</a></div></div>';
            }
            $i++;
        }
    } else {
        if (($switch == 'F' || $switch == 'L') && $lmt > 0) {
            $out = '<div class="gmenu">Пока что ' . ($switch == 'F' ? 'форум пустой' : 'библиотека пустая') . '</div>';
        } else {
            $out = FALSE;
        }
    }
    return $out;
}
.

Str@nnik, Если только вывод тем форума то удаляем функцию библиотеки?

Всего: 77