вопрос
Мне человек написал код, который показывает на каком месте находится новость (сортировка по рейтингу).
Позицию новости выводит, но криво. Пишет правильно только позицию первой новости, потом 3, 5, 7, 9 и тд.
Как сделать чтобы показывало правильную позицию новости в рейтинге?
$newssort = $db->query( "SELECT * FROM dle_post_extras ORDER BY rating DESC" );
$newssort2 = $db->super_query("SELECT * FROM dle_post_extras WHERE news_id = '{$row['news_id']}'");
$is = 1;
while($rowes = $db->get_row($newssort)) {
$echo .= "Место в рейтинге: <b><u>" . $is++ . "</u></b> ID новости: " . $rowes['news_id'] . "<br />";
$pos = $is++;
$post2 = $pos - 1;
$db->super_query( "UPDATE dle_post_extras SET positionnews='{$post2}' WHERE news_id='{$rowes['news_id']}'" );
}
$tpl->set( "{positnews}", "<div class=\"position\">Место в рейтинге:</div><div class=\"position1\">{$newssort2['positionnews']}</div>" );
Позицию новости выводит, но криво. Пишет правильно только позицию первой новости, потом 3, 5, 7, 9 и тд.
Как сделать чтобы показывало правильную позицию новости в рейтинге?
Говнокодище тот еще...
Так, возможно, будет работать:
Так, возможно, будет работать:
$newssort = $db->query( "SELECT news_id FROM dle_post_extras ORDER BY rating DESC" );
$is = 0;
while($rowes = $db->get_row($newssort)) {
$is++;
$echo .= "Место в рейтинге: <b><u>$is</u></b> ID новости: " . $rowes['news_id'] . "<br />";
$db->query( "UPDATE dle_post_extras SET positionnews='{$is}' WHERE news_id='{$rowes['news_id']}'" );
}
$newssort2 = $db->super_query("SELECT positionnews FROM dle_post_extras WHERE news_id = '{$row['news_id']}'");
$tpl->set( "{positnews}", "<div class=\"position\">Место в рейтинге:</div><div class=\"position1\">{$newssort2['positionnews']}</div>" );