SQL在一行中查询一个值并在另一行中更改它的值

时间:2017-07-25 03:30:47

标签: php mysql sql

我有一个小问题,我试图从昨天开始解决它。 当用户注册时,在注册页面中还有一个“赞助商”字段,即在网站上邀请他的人的用户名。 对于每个经过验证的推荐,我都会给赞助商一些奖励。当用户确认用于验证的电子邮件脚本将运行时,他将被激活并且赞助商应该获得一些奖励。 这是脚本的一部分,有工作要做。

if($status=="OK")
{
//updating status if validation passes
$rec1=mysql_query("select referedby from affiliateuser where email=$email");
$row2 = mysql_fetch_row($rec1);
$ref=$row2[0];
$query4=mysql_query(" update affiliateuser set active = 1 where email = '$email'");
$query3=mysql_query(" update affiliateuser set tamount = tamount + 5 where username = '$ref'");
$query4=mysql_query(" update affiliateuser set tamount = 49 where username = '$username'");
echo "<center><p>Thank You For Signing Up With Us.<br/>You Are Now Verified Member. You May Now Login Into Website. </p></center>";
}

因此,如果一切正常,它将从该用户中选择赞助商的用户名,$ query3应该更新赞助商行并更改其余额(tamount),但他的余额未受影响。如果出现问题,我会把一些代码行说成错误,然后说错误。 我是第一次用两行尝试这样的东西而且我写错了很可能。 我怎么能解决这个问题,还有其他办法。目前我不关心sql注入等,只想解决这个问题,谢谢。

1 个答案:

答案 0 :(得分:0)

我认为你忘记了&#39;和&#34; ,

if($status=="OK")
{
//updating status if validation passes
$rec1=mysql_query("select referedby from affiliateuser where email='".$email."'");
$row2 = mysql_fetch_row($rec1);
$ref=$row2[0];
$query4=mysql_query(" update affiliateuser set active = 1 where email = '".$email."'");
$query3=mysql_query(" update affiliateuser set tamount = tamount + 5 where username = '".$ref."'");
$query4=mysql_query(" update affiliateuser set tamount = 49 where username = '".$username."'");
echo "<center><p>Thank You For Signing Up With Us.<br/>You Are Now Verified Member. You May Now Login Into Website. </p></center>";
}

试试这个