Страница 1 из 1
Вопрос по mysql
Добавлено: 14 янв 2013, 14:55
Богдан
Есть поле рейтинга в таблице. Я пытаюсь обновить это поле, добавив к значению 100 пунктов при совершении определенного действия.
Получилось добавить к неопределенному юзверю, примерное так:
Код: Выделить всё
$query = "INSERT INTO users (rate) VALUES ('100') ON DUPLICATE KEY UPDATE `rate` = (`rate`+100)";
Когда пытаюсь присвоить значение определенному юзверю - ничего не происходит. Делаю так:
Код: Выделить всё
$query = "INSERT INTO users WHERE uid=$viewer_id (rate) VALUES ('100') ON DUPLICATE KEY UPDATE `rate` = (`rate`+100)";
Погуглил - вроде при добавлении в базу вообще нет параметра WHERE, что не может не расстраивать
Как бы мне это реализовать?
Re: Вопрос по mysql
Добавлено: 14 янв 2013, 15:10
bodnar
Код: Выделить всё
INSERT INTO users (id,rate) VALUES($viewer_id,'100') ON DUPLICATE KEY UPDATE `rate` = (`rate`+100)
Re: Вопрос по mysql
Добавлено: 14 янв 2013, 16:18
Alazaur
Богдан, для INSERT WHERE и не нужен, он же добавляет новую строку, с чем ему сравнивать, если добавляемой строки еще нет) Вам нужен UPDATE.
Код: Выделить всё
$query = "UPDATE users SET rate = rate + 100 WHERE userid = " . $userid;
Re: Вопрос по mysql
Добавлено: 14 апр 2013, 09:58
Nikola_B
добрый день, тема вопроса вроде подходящая, спрошу тут, такой запрос:
Код: Выделить всё
$query = 'UPDATE `stat` SET `karts`="'.$karts.'" WHERE `uid`='.$viewer_id.'';
тип столбца karts - TEXT или char, без разницы для меня, при обновлении или новом заходе в приложение, данные ячеки заменяются, но если в приложении несколько раз делаешь данный запрос, то он не заменяет, а добавляет к текстовой строке, подскажите как это избежать, уже часов 8 ковыряюсь.
Re: Вопрос по mysql
Добавлено: 14 апр 2013, 10:48
ktibo
Nikola_B, в вашей строчке кода значение переменной картс нормальное? уже после запроса значение в ячейке другое?
Re: Вопрос по mysql
Добавлено: 14 апр 2013, 11:08
Nikola_B
да, значение в ячейке все как надо, другое, толи как то с сессией связано, но не пойму как это отражается в запросе к БД, сейчас пытаюсь сделать что то наподобие
Код: Выделить всё
$query = 'UPDATE `stat` SET `karts`= REPLACE(`karts`,`karts`,"'.$karts.'") WHERE `uid`='.$viewer_id.'';
эффект такой же, если не выходя из приложения сделать повторный вопрос, значения просто добавляются.
......чуть позже допетрил....во флеше переменная добавляется...спасибо за наводку, полезу искать)