{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
11.
SV * 2.63
[автор] (4 дек 2013, 03:33) [0/0] [0] [отв] [спам] [под] +1 | -1

Xupypr, сортировка по рейтингу записи, а не по количеству проголосовавших

12.
Roma32 * 22.08
(4 дек 2013, 03:37) [0/0] [0] [отв] [спам] [под] +1 | -1

SV, То есть ты хочешь высчитать полное количество голосов + добавить сколько за и сколько против? и из полного количества голосов выводить кпримеру юзеров по рейтингу? лясик уже накрутил.*


Изм. 1 раз. / Посл. изм.
Roma32 * 22.08
(4 дек 2013, 03:41)
13.
KoT * [мошенник] 1.91
(4 дек 2013, 04:01) [1/0] [1] [отв] [спам] [под] +1 | -1

Набросал тут...
Создаешь таблицу для голосовавших, к примеру votes с полями who(кто) и whom(кому)
Добавляешь колонки в таблицу пользователей, пускай будет good(положительный) и bad(отрицательный)
Делаешь форму голосования как-то так:

<?php

if (isset($_POST[\'go\']))
{
$vote = abs($_POST[\'vote\']); // фильтр
// проверка
if ($vote < 1 && $vote > 2)
{
$sql = mysql_query(\"SELECT COUNT(id) FROM votes WHERE whom = \'$ид_юзверя\' AND who = \'$мой_ид\' LIMIT 1\"*;
if (mysql_result($sql, 0) != false)
{
// ошибка
}
else
{
if ($vote == 1) $result = \"good = good + \'1\'\"; // положительный
elseif ($vote == 2) $result = \"bad = bad + \'1\'\"; // отрицательный
// пишем результат
mysql_query(\"UPDATE users SET $result WHERE id = \'$ид_юзверя\' LIMIT 1\"*;
mysql_query(\"INSERT INTO votes SET who = \'$мой_ид, whom = \'$ид_юзверя\'\"*;
// голос принят
}
}
}

// форма голосования
<form method=\"post\" action=\"?\">
<select name=\"vote\">
<option value=\"1\">За</option>
<option value=\"2\">Против</option>
</select>
<br/>
<input type=\"submit\" name=\"go\" value=\"OK\"/>
</form>

// вывод рейтинга

$q = mysql_fetch_assoc(mysql_query(\"SELECT good, bad FROM users WHERE id = \'$ид_юзверя\' LIMIT 1\"*);
echo \'За: \' . $q[\'good\'] . \' | Против: \' . $q[\'bad\'] . \' (общий рейт: \' . ($q[\'good\'] - $q[\'bad\']) . \')<br/>\';

?>

ну а в сортировке уже выводи циклом (если я правильно понял тебя насчет сортировки)

<?php

// выбираем юзверей
$q = mysql_query(\"SELECT login, good, bad FROM users WHERE good > \'0\' ORDER BY good DESC\"*;
// счетчик
$i = 1;
// проверка
if (mysql_num_rows($q) != false)
{
$i++;
// вывод...
while($a = mysql_fetch_assoc($q))
{
echo $i . \') Юзверь \' . $a[\'login\'] . \' рейтинг: \' . ($a[\'good\'] - $a[\'bad\']) . \'<br/>\';
}
} else echo \'В рейтинге никого нет...\';

?>

Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 2
Скачать тему | Файлы темы | Фильтр сообщений