Fonksiyonunuzu aşağıdaki düzenleyin.
public function subs_usrefcode($user_id = '')
{
$query = "
SELECT
user.*,
referral.*,
FROM tbl_users AS user
LEFT JOIN def AS referral
ON user.user_refcode = referral.def_refcode
WHERE user.id = ?
";
$stmt = $this->db->pdo->prepare($query);
$stmt->execute(array($user_id));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}Tablonuzu da aşağıdaki gibi oluşturabilirsiniz.
<tbody>
<?php
$user_referrals = $users->subs_usrefcode(HANGİ_KULLANICININ_REFERANSLARINI_LİSTELEYECEKSENİZ_ID'SINI_BURAYA_YAZDIRIN);
foreach ($user_referrals as $key => $ref):
?>
<tr>
<td id="card"><?php echo $ref['dep_amnt']; ?> </td>
<td><?php echo $ref['username']; ?> </td>
<td><?php echo $ref['dep_date']; ?> </td>
</tr>
<?php endforeach; ?>
<tr>
<td></td>
<td class="text-right" tot="tot">Total Earnings</td>
<td id="total"></td>
<td></td>
</tr>
</tbody>Fakat tbl_users tablosunda sub_references sütunu o şekilde olmamalı. Türü INT olmalı ve hangi kullanıcı referans olduysa onun ID'sini yazdırmalısınız. Aynı şekilde def_refcode için de geçerli. Bu şekilde de çalışır ama performans açısından ve uygunluk bakımından dediğim gibi yapmalısınız. Bu şekilde ayrıca gereksiz veri tutmuş olursunuz. MySQL ilişkisel bir veritabanıdır. Mantığını kavrayabilmeniz için youtube'da birçok örnek mevcut. Bunlar size mutlaka ilham verecektir.
Yeni bir kullanıcı kayıt yaptırırken gelen referans kodunu tbl_users tablosunda aratacaksınız (SELECT * FROM tbl_users WHERE user_refcode = ?). eğer sonuç varsa kayıt olan kullanıcının ilgili sütununa yazdıracaksınız. Öyle bir kullanıcı yoksa da 0 yazdıracaksınız.