Немного о самом моде: это 5-ти звездочный рейтинг, принцып работы при нажатии на кнопку в таблице изменяется(+1, +2, +3, +4, +5) рейтинг(rating) и количество(+1) оставивших свой голос(q_voite). Рейтинг определяется делением строк: rating/q_voite используются только целые числа(5/2=2). Теперь о проблеме, сделал я все это только вот как так сделать что бы рейтинг изменялся именно в проголосовавшего, а не во всех сразу. Код с файла menu.php:
[code]
<?php
include("bd.php" //БД
include("part.php"
$result = mysql_query("SELECT * FROM archiv ORDER BY id LIMIT $start, $num",$db);
$myrow = mysql_fetch_array($result);
do {
//Рейтинг
$r = intval($myrow["rating"]/$myrow["q_voite"]);
echo "<p><img src=".$myrow["foto"]." alt='avatar'></p>";
echo "<p>".$myrow["name"]." ".$myrow["surname"]." ".$myrow["middle"]."</p>";
echo "<p>".$myrow["position"]."</p>";
echo "<p>Оценка: <img src='img/".$r.".png'></p>";
echo "<p><form action='/include/result.php' methost='post' name='' target='_blank'>
1<input name='score' type='radio' value='1'>
2<input name='score' type='radio' value='2'>
3<input name='score' type='radio' value='3'>
4<input name='score' type='radio' value='4'>
5<input name='score' type='radio' value='5'>
<input name='submit' type='submit' value='Оценить'>
</form>
</p>";
/*echo "<p>".$myrow["data"]."</p>";*/
echo "<p><a href=''>Комментарии</a></p>";
}
while($myrow = mysql_fetch_array($result));
include("part_end.php"
?>
[/code]
Код с файла result.php:
[code]
<?php
include("bd.php"
if (isset($_POST['score'])) {
$score = $_POST['score'];
}
$result = mysql_query("SELECT rating,q_voite FROM archiv",$db);
if(!$result) {
echo "Запрос на выборку с базы не прошел.<br>";
exit(mysql_error());
}
if(mysql_num_rows($result) > 0) {
$myrow = mysql_fetch_array($result);
$new_rating = $myrow['rating'] + $score;
$new_q_voite = $myrow['q_voite'] + 1;
$update = mysql_query("UPDATE archiv SET rating = '$new_rating', q_voite = '$new_q_voite'",$db);
if ($update) {
echo "<html><head>
<meta http-equiv='Refresh' content='0; URL=index.php>
</html></head>";
exit();
}
} else {
echo "Нет данных записей в талице";
exit();
}
?>
[/code]
Та я делал запрос с условиям ... WHERE id = '$id' бесполезно.
kvils, не может быть! значит ты просто не правильную переменную выводишь!!! если переменная [b]id[/id] отвечает за ид пользователя на которой ты сидишь то в запрос введи в конце where `id`="$id" так же с выводом. а если оно записывает всем пользователям значит ты запрос не правильно делаешь!
Вот пример зачем то так говнокодить.
<?php
$id = (int) abs($_GET['id']);
if (isset($id))
{
$PageUser = mysql_fetch_array(mysql_query('SELECT * FROM `user` WHERE `id` = "'.$id.'"'));
echo 'Поднять рейтинг пользователю: '.$PageUser['login'].'';
for($i = 1; $i < 5; $i++) {
echo '<a href="?PageRating='.$i.'">Поднять + '.$i.'';
}
if(isset($_GET['PageRating'])) {
mysql_query('UPDATE `archiv` SET `rating` = "'.$i.'" WHERE `user` = "'.$id.'"');
}
}
?>
У меня нет пользователей(тоесть сайт без регистрации) по этому голосовать имет право каждый гость сайта. С базы я вывожу имя, фамилию отчество, должность, фото ну и рейтинг все на главной. По этому рейтинг дается не пользоватклю а информации о пользователю.
Так мне не нужно я же сам практикуюсь.