В настоящее время я пытаюсь зашифровать веб-сайт сети и застрял на этапе побочной функции. Вот как это работает, каждому зарегистрированному пользователю сайта разрешено приглашать в сеть только двух человек (для этого у них есть реферальная ссылка). Однако, если участник дал свою ссылку для ссылки более чем на двух человек, и регистрирующийся пользователь хочет зарегистрироваться по этой ссылке, должно произойти следующее событие:
1. PHP должен запросить базу данных MYSQL, чтобы выяснить, ссылался ли спонсор на двух (2) человек, и если ДА, то MYSQL будет искать случайное имя спонсора-спонсора, чтобы заменить первоначального спонсора.
2. Если, напротив, MYSQL проверит и обнаружит, что спонсор еще не отослал двух человек, тогда MYSQL продолжит использовать имя пользователя спонсора для нового зарегистрированного участника.
Ниже показано, как выглядит таблица базы данных:
Имя таблицы — affiliateuser, столбец referedby — это место, где показаны спонсоры для каждого участника. Мне нужно, чтобы участник мог появляться в качестве спонсора только дважды (максимум) в столбце referedby.
Глядя на таблицу выше, пользователь yelefash2 отослал двух человек по своей ссылке, в то время как пользователь mipe305 не отослал кого-либо по своей ссылке или имени пользователя, мне нужно установить баланс, и если третье лицо пытается зарегистрироваться по имени пользователя / реферальной ссылке yelefash2, пусть PHP / MYSQL заменит его пользователем, который еще не отослал двух человек (это может быть случайный выбор или иным образом), это автоматически перенаправит участников в качестве рефералов на доступные места, например, mipe305
Я пробовал следующие коды PHP, но это не работает:
$ref=mysqli_real_escape_string($con,$_POST['referral']);//data from the referrer webform field//
$result = mysqli_query($con,"SELECT count(*) FROM affiliateuser where username = '$ref'");
$row = mysqli_fetch_row($result);
$numrows = $row[0];
if ($numrows==0)
{
$msg=$msg."Sponsor/Referral Username Not Found..<BR>";//for checking if provided sponsor exits
$status= "NOTOK";
}
$reea = mysqli_query($con,"SELECT username,referedby, COUNT(username) FROM affiliateuser GROUP BY referedby ASC");
$reeeb = mysqli_query($con,"SELECT count(*) FROM affiliateuser where referedby='$ref' ");
$row = mysqli_fetch_row($reeeb););
$refcount = $rowp[0];if ($refcount ==2 OR $refcount >2)
{$reee = mysqli_query($con,"SELECT username,referedby, COUNT(username) FROM affiliateuser GROUP BY referedby ASC");
$reeel = mysqli_query($con,"SELECT referedby FROM affiliateuser where COUNT(username)<2 ");
$row = mysqli_fetch_row($reeel);
$refpick = $row[0];
}
else
{$refpick=mysqli_real_escape_string($con,$_POST['referral']);}
Я знаю, что, должно быть, я делаю что-то не так, я немного новичок в MYSQL и PHP, любая помощь будет очень признательна
Поменял мой awnser:
$reea = mysqli_query($con,"SELECT username,referedby, COUNT(username)
FROM affiliateuser GROUP BY referedby ASC");
ничего не делает. но это может быть что-то, идущее куда-то еще на странице, а его нет в этом посте.
но ваша переменная массива результатов неверна.
$refcount = $rowp[0];
should be
$refcount = $row[0];
потому что $ rowp нигде не определен …. и результат его строки:
$row = mysqli_fetch_row($reeeb););
неправильно. так должно быть:
$row = mysqli_fetch_row($reeeb);
в конце остальное условие:
{$refpick=mysqli_real_escape_string($con,$_POST['referral']);}
может быть упрощено путем:
{$refpick=$ref;}
Одна вещь о сравнении,
the if ($refcount ==2 OR $refcount >2) should work,
but if (($refcount ==2) OR ($refcount >2)) will guarantee the correct operation.
I personally use || (double pipe) instead of "or" personally.
so I would have wrote it as: if (($refcount ==2) || ($refcount >2)) {
Других решений пока нет …