username referrer
-------- --------
admin
kelly88 admin // UPDATE USERNAME ADMIN WITH +5 POINTS //
jacob kelly88 // UPDATE USERNAME ADMIN WITH +3 POINTS AND USERNAME kelly88 WITH +5 POINTS //
david16 jacob // UPDATE USERNAME ADMIN WITH +1 POINTS AND USERNAME kelly88 WITH +3 POINTS AND USERNAME jacob WITH +5 POINTS //
Это возможно. Если да — КАК?
Я знаю только, как это сделать на первом уровне.
$query = 'UPDATE users SET points = points + :points WHERE username = :username';
$select = $db->prepare($query);
$select->bindValue(':points', 5.00, PDO::PARAM_STR);
$select->bindValue(':username', 'admin', PDO::PARAM_STR);// admin = $userInfo['referrer']
$select->execute();
Кажется, вы ищете PHP-решение. Поскольку вы не указали, что используете БД, я предполагаю, что данные находятся в массиве. К сожалению, я не могу проверить это прямо сейчас, но что-то вроде этого должно сделать работу:
$refs = array("admin" => "", "kelly88" => "admin", "jacob" => "kelly88", "david16" => "jacob");
$points = array();
foreach ($refs as $usr => $ref)
{
reward($ref,5);
}
function reward($ref,$rew)
{// rewards: 5-3-1 points
global $refs, $points;
if ($ref && array_key_exists("ref",$refs))
{
if (!array_key_exists($ref,$points)) $points[$ref]=0;
$point[$ref]+=$rew;
if ( $rew > 1) reward($refs[$ref] , $rew-2); // referrer's referrer and onwards...
]
}
Других решений пока нет …