• 04-02-2021, 18:37:10
    #1
    Arkadaşlar merhaba, burada takıldım kaldım. İki tane farklı tablom var. Bir users tablosu, diğeride comment tablosu. Bu Comment tablosundaki satırları user_id ile eşleştirip, yorumları users ın json çıktısına child olarak eklemek istiyorum. Anlatamadıysam diye örnek bir json hazırladım. Yardımcı olabilirseniz çok sevinirim.

  • 04-02-2021, 21:12:34
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Herhangi bir framework kullanılıyor mu ? Kullanılıyor ise relational yapı ile getirmek mümkün eğer kullanılmıyor ise önce user sorgusu atılıp gelen user'ı array'e çevirip sonrasında comments child'ı için comment'ler getirilip sonrasında json'a convert edilebilir.
  • 04-02-2021, 22:10:27
    #3
    clemury adlı üyeden alıntı: mesajı görüntüle
    Herhangi bir framework kullanılıyor mu ? Kullanılıyor ise relational yapı ile getirmek mümkün eğer kullanılmıyor ise önce user sorgusu atılıp gelen user'ı array'e çevirip sonrasında comments child'ı için comment'ler getirilip sonrasında json'a convert edilebilir.
    Herhangi bir framework kullanmıyorum hocam. "user sorgusu atılıp gelen user'ı array'e çevirip sonrasında comments child'ı için comment'ler getirilip sonrasında json'a convert ."

    şimdi bu users array a çeviririmde hocam, her user_id e özel commentleri çekip, eklemeyi yapamadım. Bir örnek yapabilirseniz gerçekten mutlu olurum
  • 05-02-2021, 01:55:46
    #4
    <?php
    header('Content-type: application/json');
    $db = new mysqli('localhost', 'root', '', 'test');
    $db->query('SET NAMES utf8');
    
    $users = $comments = $result = array();
    
    $query = $db->query('SELECT * FROM user');
    while ($row = $query->fetch_object()) {
        $users[$row->id] = $row;
    }
    
    $query = $db->query('SELECT * FROM comment');
    while ($row = $query->fetch_object()) {
        if (isset($comments[$row->user_id])) {
            $comments[$row->user_id][] = $row;
        } else {
            $comments[$row->user_id] = array($row);
        }
    }
    
    foreach ($users as $row) {
        $result[] = array(
            'user_id' => $row->id,
            'bot_name' => $row->displayname,
            'isActive' => $row->status,
            'children' => (isset($comments[$row->id]) ? $comments[$row->id] : array())
        );
    }
    
    exit(json_encode($result, JSON_NUMERIC_CHECK));

  • 05-02-2021, 16:12:37
    #5
    G3da adlı üyeden alıntı: mesajı görüntüle
    <?php
    header('Content-type: application/json');
    $db = new mysqli('localhost', 'root', '', 'test');
    $db->query('SET NAMES utf8');
    
    $users = $comments = $result = array();
    
    $query = $db->query('SELECT * FROM user');
    while ($row = $query->fetch_object()) {
        $users[$row->id] = $row;
    }
    
    $query = $db->query('SELECT * FROM comment');
    while ($row = $query->fetch_object()) {
        if (isset($comments[$row->user_id])) {
            $comments[$row->user_id][] = $row;
        } else {
            $comments[$row->user_id] = array($row);
        }
    }
    
    foreach ($users as $row) {
        $result[] = array(
            'user_id' => $row->id,
            'bot_name' => $row->displayname,
            'isActive' => $row->status,
            'children' => (isset($comments[$row->id]) ? $comments[$row->id] : array())
        );
    }
    
    exit(json_encode($result, JSON_NUMERIC_CHECK));

    Çok teşekkür ederim hocam, tam da istediğim gibi
  • 07-02-2021, 22:38:53
    #6
    @Instamatic; dostum geç gördüğüm için cevap veremedim, @G3da; çok güzel örneklendirmiş durumu. Kolay gelsin