Bu konu biraz kafa karıştırıcıdır. Ben elimden geldiğince anlatmaya ve sorununuza çözüm bulmaya çalışacağım.
Öncelikle tablo yapınızı bilmiyorum ama sorgunuzdan ve genel düzeninize baktığımda hatalı olduğunu anlıyorum. Aşağıdaki gibi örneği kendinize göre revize edebilirsiniz/etmelisiniz.
#tbl_users (kullanıcılar)
- id
- username
- user_email
- user_password
.
.
- user_referance_code
#tbl_referrals (referansları listelediğiniz tablo)
- id
- referrer_user_id (hangi kullanıcının ref kodu kullanıldıysa onun ID'si)
- referred_id (referans kodu ile kayıt olan yeni kullanıcının ID'si)
- amount (sanırım burada bir komisyon veriyorsunuz)
- created_at (oluşturma tarihi)
şimdi sorgunuz aşağıdaki gibi olmalı:
SELECT
user.*,
referral.*,
FROM tbl_users AS user
LEFT JOIN tbl_referrals AS referral
ON user.user_id = referral.referrer_user_idSorgularınızı benim gibi yazarsanız okuması daha kolay olur. Burada yaptığımız şey, iki tabloda birbiriyle eşleşen sütunları kullanmak. Daha sonra fonksiyonunuzu aşağıdaki gibi düzenlemelisiniz.
public function subs_usrefcode($user_id = '')
{
$query = "
SELECT
user.*,
referral.*,
FROM tbl_users AS user
LEFT JOIN tbl_referrals AS referral
ON user.user_id = referral.referrer_user_id
WHERE user.user_id = ?
";
$sth = $this->db->pdo->prepare($query);
$sth->execute(array($user_id));
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
return $result;
}listeleme sayfanızı da aşağıdaki gibi düzenleyin
<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>eğer sizin kodlarınızda db bağlantısı vs sorunsuz bir şekilde oluyorsa oluşturduğum kodlar ile herhangi bir kullanıcının referanslarını listeleyebileceksiniz. Tabiki tüm bunlar örnek olarak yapıldı. Siz kendinize göre gerekli sütunları ekleyip, silebilirsiniz.
Eğer öğrenmek istiyorsanız;
Yukarıda anlattıklarım sorununuzu çözecektir ama işin doğrusu değildir ve kesinlikle bu şekilde uygulanmamalıdır. Mysql'de hiyerarşik veri saklamak için bir çok model var. Sizin yapmak istediğinizin adı "The Nested Set Model (İç içe Küme Modeli)"dir. Daha spesifik arama yapmak isterseniz "Multi Level Nested Referral System" anahtar kelimesini kullanabilirsiniz. Bu modellerle ilgili github'ta, youtube'da bir çok örnek/kütüphane/anlatım bulabilirsiniz ya da aşağıya ekleyeceğim bağlantıları kontrol edebilirsiniz. Kolaylıklar.
http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
https://www.w3schools.com/mysql/mysql_join.asp