Помогите плиз с запросами

Печать RSS
227

Автор
Пацак
0
Вообщем делаю голосование за фотку, но чтобы можна было оставлять +1 или +3 (для начала smile ) столкнулся с проблемой вывода, сколько поставил юзер, +1 или +3.

Точнее, делаю так:
<?
$q = mysql_query("SELECT * FROM `users` WHERE `id`='{$nk}';");
$data = mysql_fetch_array($q);
$counter = $data['votefoto']; // само поле фото
$login = $data['user'];
$counter2 = $counter + 1; // + 1 голос
// тут запрос на запись в бд
mysql_query ("UPDATE `users` SET `cols`=`cols`+'1', `votefoto`='{$counter2}' WHERE `id`='{$nk}';");
mysql_query ("INSERT INTO `golos` SET `user`='{$nk}', who='{$id}'");
// ок...
echo 'Голос принят!<br/>';
// далее...
$q = mysql_query("SELECT * FROM `users` WHERE `id`='{$nk}';");
$data = mysql_fetch_array($q);
$counter = $data['votefoto']; // само поле фото
$login = $data['user'];
$counter2 = $counter + 3; // + 3 голоса
// тут запрос на запись в бд
mysql_query ("UPDATE `users` SET `cols`=`cols`+'3', `votefoto`='{$counter2}' WHERE `id`='{$nk}';");
mysql_query ("INSERT INTO `golos` SET `user`='{$nk}', who='{$id}'");
// ок...
echo 'Голос принят!<br/>';
// ЗЫ спецом создал поле `cols`
// потом вывожу у юзера
$goloscol = mysql_result(mysql_query("SELECT `cols` FROM `users` WHERE `id` = '".$id."';"), 0);
echo 'Кто голосовал: ' . $login . $goloscol;


?>
Теперь проблема заключается в том, что если я допустим проголосую +1 - ему выводить будет "юзер такой то +1", если после проголосую +3, уже не будет выводить "юзер +1, юзер2 +3" будет выводить "юзер +4, юзер2 +4" smile надеюсь ясно описал суть
Изменил: Дмитрий (10.07.2010 / 20:04)
S

Чатланин
0
тоесть тебе нужно сосчитать сколько голосов отдал каждый пользователь по отдельности?
Автор
Пацак
0
Да, а то у меня выходит рядом с ником голосовавшего общее количество, а мне нужно вывести отдельно кто сколько дал
О

Землянин
0
Не совсем ясно, код грязный и судя повсему отношения между таблицами неверные. Опиши структуру БД.
А

Оранжевые штаны
0
этот код можно сократить в 3 раза
Автор
Пацак
0
#4 что там описывать, есть таблица юзеров `users` в ней колонка `votefoto` в которой содержытся количество голосов, я добавлял еще `cols`

#5 ну напиши свой сокращенный пример
Б

Оранжевые штаны
0
<?
if(!empty($_GET['vote'])){
    $vote = intval($_GET['vote']);
    if($vote<=3 && $vote>=1){
        $q = mysql_query("SELECT * FROM `users` WHERE `id`='{$nk}';");
        $data = mysql_fetch_array($q);
        $counter = $data['votefoto']; // само поле фото
        $login = $data['user'];
        $counter2 = $counter + $vote; // + 1 голос
        // тут запрос на запись в бд
        mysql_query ("UPDATE `users` SET `cols`=`cols`+'$vote', `votefoto`='{$counter2}' WHERE `id`='{$nk}';");
        mysql_query ("INSERT INTO `golos` SET `user`='{$nk}', who='{$id}'");
        // ЗЫ спецом создал поле `cols` 
        // потом вывожу у юзера 
        $goloscol = mysql_result(mysql_query("SELECT `cols` FROM `users` WHERE `id` = '".$id."';"), 0); 
        echo 'Кто голосовал: ' . $login . ' +' . $vote;
        // ок...
        echo 'Голос принят!<br/>';
    } else {
        die('error');
    }
}
?>
Не совсем правда понял логику твого кода...но если ты хочеш предупредить юзера о том что голосовали за его фотку делай просто в конце отправку ЛС c количеством балов и пользователем который проголосовал.
Изменил: Богдан (11.07.2010 / 04:30)
Автор
Пацак
0
Та нее, отправку ЛС я сделал, тут другое, кароч юзверь смотреть может кто отдал за него голос, но там выводит только ники, а я хотел чтобы выводило ник и сколько он дал голоса. Ну например:

[b]Кто голосовал за меня[/b]
Вася +1
Петя +3
Галя -5

типа этого
А

Оранжевые штаны
0
if($vote<=3 && $vote>=1){ замени на if($vote<=-5 && $vote>=5){ для начала.
судя по названию твоей таблицы users, тебе придётся создать ещё 1 таблицу golosa.
|id|кто голосовал|за кого|оценка|
дальше сам)
О

Землянин
0
Фотография всего лишь одна у пользователя или множество? Если второе, то нужно в таблице golosa (я бы на твоем месте таблицу golosa переименовал в voting) сделать поле id_image.
И еще какая максимальная/минимальная оценка за фотографию для каждого пользователя?
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск