MYSQL溢出功能

时间:2017-06-10 15:31:06

标签: php mysql mlm

我目前正在尝试对网络网站进行编码并陷入溢出功能阶段。这就是它的工作原理,该网站的每个注册用户只允许将两个人引荐到网络中(他们有一个推荐链接这个)。但是,如果某位成员提供他/她的链接以引用两个以上的人并且注册的人想要注册该链接,则应发生以下事件:

1。 PHP应查询MYSQL数据库以确定赞助商是否已提及最多两(2)个人,如果是,则MYSQL将搜索随机赞助商用户名以替换初始赞助商。 2.如果相反,MYSQL检查并发现赞助商尚未推荐两个人,那么MYSQL将继续使用赞助商用户名为新的注册会员。

下面是数据库表的样子:

My MYSQL database snapshot

表名是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来说是个新手,任何帮助都会非常感激

1 个答案:

答案 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)) {