我目前正在尝试对网络网站进行编码并陷入溢出功能阶段。这就是它的工作原理,该网站的每个注册用户只允许将两个人引荐到网络中(他们有一个推荐链接这个)。但是,如果某位成员提供他/她的链接以引用两个以上的人并且注册的人想要注册该链接,则应发生以下事件:
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来说是个新手,任何帮助都会非常感激
答案 0 :(得分:0)
更改了我的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)) {