Система рефералов на PHP
|
|
dima9595 | Дата: Среда, 14 Августа 2013, 11:30 | Сообщение # 1 |
почти ветеран
Сейчас нет на сайте
| Всем доброго времени суток! Делаю систему рефералов на своём сайте, но почему-то она не работает.
Скрипт регистрации(Где и добавляем реферала):
Код //Создаём в базе данных нового реферала и даём бонус пригласившему $login_ref = $_GET['login']; $sql_reg_ref = mysql_query("INSERT INTO ref (login_h, login_j) VALUES ('$login_ref', '$login')"); if(isset($_GET['login'])){ if($user_sa['login'] == $_GET['login']){ $sql_ref_login = mysql_query("UPDATE users SET soul = soul+$engine_a[ref_soul] WHERE login = '$ref_login'"); } else { $bad = 1; $error7 = "Извените, но данного реферала не существует!"; } }
Не даётся бонус к soul...
Сообщение отредактировал dima9595 - Среда, 21 Августа 2013, 11:40 |
|
| |
CreatingOver | Дата: Среда, 14 Августа 2013, 11:50 | Сообщение # 2 |
ColdGamedev
Сейчас нет на сайте
| Код $sql_user_ref = mysql_query("UPDATE users SET soul = 'soul'+1 WHERE login='$login_ref'"); Вместо этого попробуй так: Код $sql_user_ref = mysql_query("'soul'+1 WHERE login='$login_ref'"); Update и set вещи плохие - вся работа от них может полететь. На себе испытал. Не выйдет - тогда не знаю, извини.
Я снова с вами:з Возвращение легенды. (нет)
|
|
| |
dima9595 | Дата: Среда, 14 Августа 2013, 12:08 | Сообщение # 3 |
почти ветеран
Сейчас нет на сайте
| CreatingOver, если я не ошибаюсь, то это не выйдет. Так как "$sql_user_ref" отвечает за таблицу users, а то, что ты написал - не даёт sql запрос в таблицу users...
|
|
| |
CreatingOver | Дата: Среда, 14 Августа 2013, 12:22 | Сообщение # 4 |
ColdGamedev
Сейчас нет на сайте
| Цитата (dima9595) CreatingOver, если я не ошибаюсь, то это не выйдет. Так как "$sql_user_ref" отвечает за таблицу users, а то, что ты написал - не даёт sql запрос в таблицу users... В принципе возможно. Но запрос то он отправлять будет, только вот ты его не получишь... Попробуй у себя в старом коде порыться, там ошибка может будет.
Я снова с вами:з Возвращение легенды. (нет)
|
|
| |
dima9595 | Дата: Среда, 14 Августа 2013, 12:24 | Сообщение # 5 |
почти ветеран
Сейчас нет на сайте
| какой старый код?
|
|
| |
Vinchensoo | Дата: Среда, 14 Августа 2013, 12:37 | Сообщение # 6 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| меняем на Это вроде стандарт mysql, может в php и без кавычек можно.
Дай полный код и опиши, что ты хочешь сделать. Я не особо понимаю. Что такое user_sa.
|
|
| |
lvovand | Дата: Среда, 14 Августа 2013, 13:12 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| там уж либо без кавычек, soul = soul+1, либо `soul` = `soul`+1
"Update и set вещи плохие" - это что еще за нонсенс? mysql_query("'soul'+1 WHERE login='$login_ref'"); - что это вообще такое?
Разработка и продвижение сайтов. Дизайн
|
|
| |
pelmenka | Дата: Среда, 14 Августа 2013, 14:02 | Сообщение # 8 |
Драгоценный Тунеядец
Сейчас нет на сайте
| Я тут не особо разбирался, но попробуй заменить Код $sql_user_ref = mysql_query("UPDATE users SET soul = 'soul'+1 WHERE login='$login_ref'"); на это: Код $sql_user_ref = mysql_query("SELECT `souls` FROM `users` WHERE `login` = '$login_ref'"); $souls = mysql_fetch_row($sql_user_ref); if($souls[0] == NULL) $souls[0] = 0; $souls[0]++; $sql_user_ref = mysql_query("UPDATE `users` SET `soul` = '$souls[0]' WHERE `login` = '$login_ref'"); P.S. Я не проверял на рабочесть. P.P.S. Конечно, это говнокод и так писать не надо, но это лучше, чем ничего Добавлено (14.08.2013, 14:02) --------------------------------------------- А вообще весь этот код сводится к тому, что soul может быть NULL
Сталина в каждый дом!
Сообщение отредактировал pelmenka - Среда, 14 Августа 2013, 13:31 |
|
| |
dima9595 | Дата: Пятница, 16 Августа 2013, 16:16 | Сообщение # 9 |
почти ветеран
Сейчас нет на сайте
| lvovand, Цитата (dima9595) $sql_user_ref = mysql_query("UPDATE users SET soul = 'soul'+1 WHERE login='$login_ref'");
если пользователь зарегистрировался через реф. ссылку, то в профиле реферала($login_ref - это логин пригласившего), прибавляется +1 к soul.
|
|
| |
lvovand | Дата: Пятница, 16 Августа 2013, 16:32 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| dima9595, речь не про $login_ref, теоретически то понятно откуда она, только следить чтобы непустая была
mysql_query("UPDATE users SET soul = 'soul'+1 WHERE login='$login_ref'"); - здесь одинарные кавычки у названия столбца не нужны
а про запрос mysql_query("'soul'+1 WHERE login='$login_ref'"); - это не запрос а какой-то бред, и про непонятки с update и set, с чего вдруг стандартные операторы mysql стали плохими.
у тебя было бы нормально, только либо mysql_query("UPDATE users SET soul = soul+1 WHERE login='$login_ref'"); или mysql_query("UPDATE `users` SET `soul` = `soul`+1 WHERE login='$login_ref'");
Разработка и продвижение сайтов. Дизайн
Сообщение отредактировал lvovand - Пятница, 16 Августа 2013, 19:11 |
|
| |
dima9595 | Дата: Пятница, 16 Августа 2013, 17:23 | Сообщение # 11 |
почти ветеран
Сейчас нет на сайте
| Пока ни чего не получается(
|
|
| |
lvovand | Дата: Пятница, 16 Августа 2013, 19:16 | Сообщение # 12 |
старожил
Сейчас нет на сайте
| ничего - понятие широкое слишком, выводи запросы последовательно по одному и выполняй, может у тебя с таблицей что не то, может где-то в переменных или в формировании запроса ошибка
Разработка и продвижение сайтов. Дизайн
Сообщение отредактировал lvovand - Пятница, 16 Августа 2013, 19:31 |
|
| |
dima9595 | Дата: Пятница, 16 Августа 2013, 19:22 | Сообщение # 13 |
почти ветеран
Сейчас нет на сайте
| Всем большое спасибо за помощь...буду искать проблеммы.
|
|
| |
Topkoder | Дата: Вторник, 20 Августа 2013, 03:29 | Сообщение # 14 |
частый гость
Сейчас нет на сайте
| Совет: сразу при первом переходе по реф ссылке загоняй логин в куки. Добавлено (20.08.2013, 03:29) --------------------------------------------- И в базу уже с куков записуй
|
|
| |
dima9595 | Дата: Вторник, 20 Августа 2013, 19:50 | Сообщение # 15 |
почти ветеран
Сейчас нет на сайте
| Topkoder, спс...попозже буду разбираться с куками.
|
|
| |
pelmenka | Дата: Вторник, 20 Августа 2013, 20:34 | Сообщение # 16 |
Драгоценный Тунеядец
Сейчас нет на сайте
| dima9595, попробуй в soul поставить какое-нибудь значение руками
Сталина в каждый дом!
|
|
| |
dima9595 | Дата: Среда, 21 Августа 2013, 11:39 | Сообщение # 17 |
почти ветеран
Сейчас нет на сайте
| Прикол в чём...если закинуть этот-же скрипт в любое место(не в скрипт регистрации), то он будет работать(без переменных, а сразу, введя все данные вручную)...А если в скрипт регистрации, то нет. И ещё...мне ни кто так и не помог с главным вопросом...почему не добавляются рефералы...Добавлено (21.08.2013, 11:21) --------------------------------------------- На счёт добавление рефералов в бд я уже разобрался. Осталось понять почему не прибавляется к soul... Добавлено (21.08.2013, 11:39) --------------------------------------------- изменил код добавления soul к пользователю: Код $sql_ref_login = mysql_query("UPDATE users SET soul = soul+$engine_a[ref_soul] WHERE login = '$ref_login'");
|
|
| |
pelmenka | Дата: Среда, 21 Августа 2013, 13:59 | Сообщение # 18 |
Драгоценный Тунеядец
Сейчас нет на сайте
| dima9595, я так понимаю, что тебе нужно что-то вроде этого
Сталина в каждый дом!
|
|
| |
dima9595 | Дата: Среда, 21 Августа 2013, 17:30 | Сообщение # 19 |
почти ветеран
Сейчас нет на сайте
| pelmenka, чуть-чуть не то. soul - это игровая валюта(прошу прощения за позднее объяснение). Я хотел, если пользователь зарегался по реф ссылке, то пригласивший получит +1 к игровой валюте...
|
|
| |
pelmenka | Дата: Среда, 21 Августа 2013, 17:41 | Сообщение # 20 |
Драгоценный Тунеядец
Сейчас нет на сайте
| так он и так +1 получает
Сталина в каждый дом!
|
|
| |