Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток!
Я занимаюсь разработкой софта под iPhone и до вчерашнего дня с MySQL работать не приходилось. Сейчас у меня в проекте есть программа, для которой пришлось писать часть выполняемую на сервере. Ближе к делу:
На сервер шлются запросы содержащие определенные значения, в моем случае это имя пользователя, идентификатор девайся и количество набранных очков, запрос в виде: http://....../put_score.php?secret=some_secret&udid=номер девайся&name=имя&score=количество очков
Код этого файла внизу поста, как можно увидеть, проблема в добавлении результатов. При посылке запроса в базу добавляется новая строка при любом значении, мне же необходимо что бы значение score добавлялось/менялось, при совпадении имени и номера девайса. Т.е. нужно: Если один и тот же юзер шлет несколько результатов с разным score (uuid и name одинаковые) то была бы только одна строка в базе принадлежащая ему, а ее значение score менялось на новое.
Я пробовал много разных вариантов , но лучшее чего добился это:
Неактивен
В случае с ON DUPLICATE KEY «одинаковость» строки определяется уникальным
ключом — он у Вас есть?
Неактивен
Спасибо за ответ!
Если я правильно понял, то да, такой ключ есть, даже два! Это udid и name, но даже если юзер сменит имя, то udid он не изменит при всем своем желании, это аппаратная часть девайса.
Отредактированно iSheeZ (07.05.2010 09:34:52)
Неактивен
paulus Однако вашим вопросом Вы мне очень помогли!
Наконец-то нашел решение! Действительно, была проблема в уникальном ключе! Я не рассматривал этот вариант из-за того, что таблица создавалась совершенно другим файлом, теперь же все работает! Если у Вас есть iPod Touch/iPhone и аккаунт US App Store могу предложить, в знак моей благодарности, промо коды к моим программам или же добавить ваш девайс в список девелопера и вы сможете тестировать новую 4 прошивку
Неактивен
К сожалению, нету, но спасибо за предложение
Неактивен