ozanalkancomtr adlı üyeden alıntı: mesajı görüntüle
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.
Tekrardan Merhabalar ve teşekkürler.

dediğiniz gibi düzenlediğimde aşağıdaki hatayı alıyorum. sanırım fonksiyon kısmında user_id yi karşılayamadığım için bu hatayı alıyorum ama tam olarak emin olamadım

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM tbl_users AS user LEFT JOIN def AS referral ON user.use...' at line 4 in C:\xampp\htdocs\hacer\classes\Users.php:144 Stack trace: #0 C:\xampp\htdocs\hacer \classes\Users.php(144): PDOStatement->execute(Array) #1 C:\xampp\htdocs\hacer \references.php(95): Users->subs_usrefcode('1') #2 {main} thrown in C:\xampp\htdocs\hacer \classes\Users.php on line 144
Bahsettiği 144. satır aşağıdaki ve daha önce de array denediğimde bu hatayı almıştım

$stmt->execute(array($user_id));