Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Статистика рейтинга

Статистика рейтинга


     22.05.2014    Все вопросы » Общие вопросы по PHP    2371

вопрос
Привет!

Мне нужно вывести в статистике рейтинга имя тех кто проголосовал в нем, я делаю так (если что не правильно делаю прошу поправьте)
$voted_u = $db->query ( "SELECT member FROM `rating` WHERE news_id='{$row['id']}'");  
while($x_row = $db->get_row($voted_u)){
$voted_s .= "<li>{$x_row['member']}</li>";
}
$tpl->set( '{voted}', $voted_s);


Я хотел бы еще вывести рядом с именем и аватарку, но не знаю как, знаю только что:


$user_photo = $db->get_row ( $db->query ( "SELECT foto FROM " . PREFIX . "_users WHERE name='{$pf_row['member']}'"));
if ($user_photo['foto']){
$tpl->set( '{avatar}', $config['http_home_url']. "uploads/fotos/" . $user_photo['foto']);
} else {
$tpl->set( '{avatar}', '{THEME}/dleimages/noavatar.png');
}


Прошу помогите.

Ответил: D0Gmatist


Это добавит много запросов в БД
Выход вижу только 1
Когда юзер выставляет рейтинг, нужно в таблицу rating заносить его фото по мима имени, заранее создав поле в данной таблице
и тогда можно будет сделать так

$voted_u = $db->query ( "SELECT &#96;member&#96;, &#96;foto&#96; FROM &#96;rating&#96; WHERE news_id='{$row['id']}'"); 

$voted_s = ""; // желательно переменную создавать пустую прежде чем до записывать в неё ($voted_s .= $xxx;)

while($x_row = $db->get_row($voted_u)){

    if ($x_row['foto']){
        $foto = $config['http_home_url']. "uploads/fotos/" . $x_row['foto'];
    } else {
        $foto = '&#123;THEME}/dleimages/noavatar.png';
    }

    $voted_s .= "<li>{$x_row['member']} [img=|{$x_row['member']}]{$foto}[/img]</li>";
}

$tpl->set( '{voted}', $voted_s);

3 комментария

D0Gmatist
Юзер

D0Gmatist - 22 мая 2014 11:59 -

$voted_u = $db->query ( "SELECT `member`, `foto` FROM `rating` WHERE news_id='{$row['id']}'"); 

$voted_s = ""; // желательно переменную создавать пустую прежде чем до записывать в неё ($voted_s .= $xxx;)

while($x_row = $db->get_row($voted_u)){

    if ($x_row['foto']){
        $foto = $config['http_home_url']. "uploads/fotos/" . $x_row['foto'];
    } else {
        $foto = '{THEME}/dleimages/noavatar.png';
    }

    $voted_s .= "<li>{$x_row['member']} <img src=\"{$foto}\" alt=\"{$x_row['member']}\"></li>";
}

$tpl->set( '{voted}', $voted_s);

D0Gmatist
Юзер

D0Gmatist - 22 мая 2014 12:10 -

Хотя есть ещё 1 вариант
по мима имени заносить ID
И тогда сделать так

$voted_u = $db->query ( "SELECT `member`, `id` FROM `rating` WHERE news_id='{$row['id']}'"); 

$voted_s = ""; // желательно переменную создавать пустую прежде чем до записывать в неё ($voted_s .= $xxx;)

while($x_row = $db->get_row($voted_u)){

    $id = $x_row['id'];

    if ( file_exists( ROOT_DIR  . "uploads/fotos/foto_" . $id . "gif" ) ) {

        $foto = $config['http_home_url']. "uploads/fotos/foto_" . $id . "gif";

    } elseif ( file_exists( ROOT_DIR  . "uploads/fotos/foto_" . $id . "png" ) ) {

        $foto = $config['http_home_url']. "uploads/fotos/foto_" . $id . "png";

    } elseif ( file_exists( ROOT_DIR  . "uploads/fotos/foto_" . $id . "jpg" ) ) {

        $foto = $config['http_home_url']. "uploads/fotos/foto_" . $id . "jpg";

    } else {

        $foto = '{THEME}/dleimages/noavatar.png';

    }

    $voted_s .= "<li>{$x_row['member']} <img src=\"{$foto}\" alt=\"{$x_row['member']}\"></li>";
}

$tpl->set( '{voted}', $voted_s);

FastFud
Юзер

FastFud - 22 мая 2014 13:21 -

сделал так:


$voted_u = $db->query ( "SELECT member, id FROM `rating` WHERE news_id='{$row['id']}'");

$voted_s = "";

while($x_row = $db->get_row($voted_u)){

    $id = $x_row['id'];

    if ($x_row['id']){
        $foto = $config['http_home_url']. "uploads/fotos/foto_" . $x_row['id'] . ".jpg";
    } else {
        $foto = $config['http_home_url']. '{THEME}/dleimages/noavatar.png';
    }

    $voted_s .= "<li>{$x_row['member']} <img src=\"{$foto}\" alt=\"{$x_row['member']}\"></li>";
    }

    $tpl->set( '{voted}', $voted_s);


Спасибо братец, век буду помнить!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх