• 20-10-2023, 19:21:43
    #1
    Merhabalar pdo ile bir chat sistemi yazıyorum

    eğer bir kullanıcı mesaj aldıysa ve ya mesaj attıysa kişiler sekmesinde attığı/aldığı mesajın sahibini göstermek istiyorum bunu yapabiliyorum ama yapmak istediğim bunu 1 kere göstermek

    sql yapım bu

    PHP Kodum :
    $query = $pawn->get("SELECT * FROM chat WHERE senduid='{$userData['u_id']}' OR recuid = '{$userData['u_id']}'");
    foreach($query as $data) {
      echo $data['value']."<br>";
    }
    Özetlicek olursam

    recuid = senduid ise senduid = recuid olmalı eğer bu koşullar sağlanıyorsa bu mesajları tek saymalı ve kendi uidimi değilde kullanıcının uidini yazdırmak istiyorum

    bu verilere göre ekranda sadece 32 ve 5 yazmasını yapmaya çalışıyorum ama bi türlü beceremedim yardım ederseniz sevinirim
  • 20-10-2023, 19:29:20
    #2
    $query = $pawn->get("SELECT senduid, recuid FROM chat WHERE senduid='{$userData['u_id']}' OR recuid = '{$userData['u_id']}'");
    
    $displayedUids = array();
    
    foreach($query as $data) {
        if ($data['senduid'] == $userData['u_id'] && !in_array($data['recuid'], $displayedUids)) {
            echo $data['recuid']."<br>";
            $displayedUids[] = $data['recuid'];
        } elseif ($data['recuid'] == $userData['u_id'] && !in_array($data['senduid'], $displayedUids)) {
            echo $data['senduid']."<br>";
            $displayedUids[] = $data['senduid'];
        }
    }
  • 20-10-2023, 19:30:17
    #3
    CTL adlı üyeden alıntı: mesajı görüntüle
    $query = $pawn->get("SELECT senduid, recuid FROM chat WHERE senduid='{$userData['u_id']}' OR recuid = '{$userData['u_id']}'");
    
    $displayedUids = array();
    
    foreach($query as $data) {
        if ($data['senduid'] == $userData['u_id'] && !in_array($data['recuid'], $displayedUids)) {
            echo $data['recuid']."<br>";
            $displayedUids[] = $data['recuid'];
        } elseif ($data['recuid'] == $userData['u_id'] && !in_array($data['senduid'], $displayedUids)) {
            echo $data['senduid']."<br>";
            $displayedUids[] = $data['senduid'];
        }
    }
    Teşekkür ederim
  • 20-10-2023, 19:31:32
    #4
    Hepsini tek bi klasörde toplamak yerine
    message_topic ve message adlı iki farklı tablo oluştur
    message_topic
    topic_id(int 11 auto increment primary key)
    sender_id int 11
    receiver_id int 11
    send_time datetime
    message_title varchar 200
    status int 1
    message_folder varchar 55
    Yapı kur
    message
    pm_id (int 11 auto increment primary key)
    pm_date datetime
    pm_sender int 11
    pm_text text
    pm_status int 1
    Yapısını kur
    Left joinle de çok kolaylıkla verilerini işler ve listelersin