Анекдоты для Johncms 5.x

2.02K
.
ДоХтор,
$total = mysql_result(mysql_query("SELECT count(*) FROM `anekdot` WHERE `type` = 'anekdot'"), 0);

Спасибо. Но тогда по типу anekdot так как подсчитывать нужно количество анекдотов. Еще раз спасибо.
.
Ой, тебе же не категории нужны, а анекдоты? Тогда по типу anekdot:
$total = mysql_result(mysql_query("SELECT count(*) FROM `anekdot` WHERE `type` = 'anekdot'"), 0);
.
# Dezaktivator (21.12.2017 / 17:09)
ДоХтор, $total = mysql_result(mysql_query("SELECT count(*) FROM `anekdot` WHERE `type` = 'anekdot'"), 0);
Спасибо. Но тогда по типу anekdot так как подсчитывать нужно количество анекдотов. Еще раз с
Да-да, по типу "анекдот", всё верно )
.
Не пойму в чем причина, когда жмешь на + голос засчитывается и страница просто обновляется, а когда на - то голос засчитывает и перекидывает к категориям.
else {
                    $rating = '<a href="?act=plus&amp;id='.$res['id'].'">+</a> <strong>'.$res['rating'].'</strong> <a href="?act=minus&amp;id='.$res['id'].'">-</a>';
                }
.
Dezaktivator, это надо смотреть в файле minus (с расширением, скорее всего .php) , потому что при клике по "-" браузер направляется по адресу: ?act=minus&amp;id=xxx
.
ДоХтор, Так там всего один файл индекс (в архиве) если не считать инсталла.
.
# Dezaktivator (22.12.2017 / 20:00)
ДоХтор, Так там всего один файл индекс (в архиве) если не считать инсталла.
Тогда надо найти в этом файле блок кода, который работает со значением act . Это может быть или
switch ($act) {
    case 'minus':
    // тут какое-то действие
}
или
if ($_GET['act'] == 'minus') {
    // тут какое-то действие
}
И там уже смотреть, куда и почему происходит редирект.
.
Добавлено: 22.12.2017 / 20:30
ДоХтор, Спасибо, поправил. Вот может кому пригодиться.
case 'minus':
        if($user_id) {
            $res = mysql_fetch_assoc(mysql_query("SELECT * FROM `anekdot` WHERE `id` = '".$id."'"));
            $user_rat = explode('|', $res['rating_users']);
            if(!in_array($user_id, $user_rat)) {
                mysql_query("UPDATE `anekdot` SET `rating` = `rating`-1 WHERE `id` = '".$id."'");
                mysql_query("UPDATE `anekdot` SET `rating_users` = '".$user_id."|".$res['rating_users']."' WHERE `id` = '".$id."'");
                header('Location: ?act=catalog&id='.$res['refid']);
            } else {
                echo functions::display_error($lng_an['rating_error'], '<a href="?">'.$lng_an['title'].'</a>');
            }
        } else {
            header('Location: ?');
        }

А было так
header('Location: ?');


Добавлено: 22.12.2017 / 20:32
Только теперь если анекдот на 3-й странице после нажатия на минус бросает на первую страницу категории
.
Dezaktivator, протестил - работает
* (+/-)
.
ДоХтор, Да, проверил, все работает как надо. Спасибо большое.
Всего: 53