Xupypr, сортировка по рейтингу записи, а не по количеству проголосовавших
SV, То есть ты хочешь высчитать полное количество голосов + добавить сколько за и сколько против? и из полного количества голосов выводить кпримеру юзеров по рейтингу? лясик уже накрутил.
Набросал тут...
Создаешь таблицу для голосовавших, к примеру 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 \'В рейтинге никого нет...\';
?>