• 09-02-2018, 12:26:00
    #1
    Merhaba arkadaÅŸlar,
    Öncelikle yapmak istediğim sistem hakkında bilgi vereyim. Üyelerim mesaj yaz kısmına tıklayacak ve ilgili uyeye mesaj yollayacak. Gelen ve giden mesajlar aynı sayfada görünecek (facebook gibi) üyem kendi profiline gelip "mesajlar" sayfasına gectiginde hem kendi yolladıgı veya ona gelen mesajları ID'ye göre listelenmiş görecek fakat gruplanmış şekilde..
    Mysql yapım şu şekilde

    mesajyaz.php
    Bu sayfada sorun yok karşılıklı olarak mesajlaşılıyor (ajax ile sayfa yenileme kısmını eklemedim)
    $mesajlar=mysql_query("select * from mesajlar where (gonid='".$id."' and aliciid='".$_SESSION['kimlik']."') or (gonid='".$_SESSION['kimlik']."' and aliciid='".$id."') ORDER BY id ASC");
    $no="0";
    while ($mesajcek=mysql_fetch_array($mesajlar)) {
    $no=$no+1;
    echo $mesajcek[gon]."-".$mesajcek[mesaj]."<br />";
    }
    if($no=="0"){echo "MesajlaÅŸma yok";}
    echo "<br /><div id='mesajsonucu'></div><br /><form class='mesajformu' name='mesajformu'  method='post'>
    <textarea name='mesaj' rows='5' style='width:50%;'></textarea>
    <input type='hidden' name='gon' value='".$_SESSION['kadi']."'>
    <input type='hidden' name='alici' value='".$uyegetir[kullaniciadi]."'>
    <input type='hidden' name='gonid' value='".$_SESSION['kimlik']."'>
    <input type='hidden' name='aliciid' value='".$id."'>
    <br />
    <a id='mesajyolla' class='pembebuton' href='#'>Gönder</a>
    </form>";
    Mesajlar.php (Gelen kutusu ve giden kutusu aynı yerde gruop lanarak listelenecek asıl sorunda burda)
    $gelenkutusu=mysql_query("select * from mesajlar where (gonid='".$_SESSION['kimlik']."') or (aliciid='".$_SESSION['kimlik']."')  GROUP BY gon, alici ORDER BY id DESC");
    echo "Gön - Alıcı<br />";
    while ($gelenmsj=mysql_fetch_array($gelenkutusu)) {
    if($gelenmsj[gonid]==$_SESSION['kimlik']){
    echo "<a href='mesajlar.php?id=".$gelenmsj[aliciid]."&emir=mesajyaz'>".$gelenmsj[gon]."-".$gelenmsj[alici]."</a><br />";
    }else{
    echo "<a href='mesajlar.php?id=".$gelenmsj[gonid]."&emir=mesajyaz'>".$gelenmsj[gon]."-".$gelenmsj[alici]."</a><br />";
    }
    }
    Gelen ve giden mesajlar listesi sonuç olarak aşağıdaki gibi oluyor

    Listelemeyi nasıl yapmalıyım veya sistemi nasıl değiştirebilirim acaba ?
    GROUP BY için fikri olan veya alternatif düşüncesini paylaşmak isteyenleri bekliyorum
    Saygılarımla.
  • 09-02-2018, 12:51:33
    #2
    her iki kişi arasındaki mesajlaşmaya uniqe bir değer ata. O sohbetin gizli anahtarı gibi. O iki kişinin bütün yazışmalarını o uniqe id ile veritabanına kayıt ettir. Grouplamayı da uniqe ID'ye göre yaptırırsın.
  • 09-02-2018, 12:55:12
    #3
    Taspinardizayn adlı üyeden alıntı: mesajı görüntüle
    her iki kişi arasındaki mesajlaşmaya uniqe bir değer ata. O sohbetin gizli anahtarı gibi. O iki kişinin bütün yazışmalarını o uniqe id ile veritabanına kayıt ettir. Grouplamayı da uniqe ID'ye göre yaptırırsın.
    Aklımda öyle birşeyvardı ornegin mesajlaşan uyelerin ID'lerini birleştirip bir alana atamak gibi ama belki GROUP BY olayını detaylandıran bir arkadaş bulurum diye şansımı denemek istedim.
  • 09-02-2018, 14:20:38
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Daha önce benzer bir sistem yapmıştım o gruplama sorunu bende de vardı. Sonradan o gelen giden mesajları ayrı ayrı atmak yerine tek tabloda tutarak çözdüm. Yani bir tabloda id gönderen alıcı diye 3 sütun oluyor. Buradaki id ile de ayrı bir tabloda mesajları tutuyorsun ve mesajid diye sütuna o id kayıt ediyosun. Böylece r10 gibi oluyo gelen giden mesajları tek sayfada görebiliyosun. Hem de ilk tablodan alıcı ve gönderici eleştirmesi yapıp çekeceksin gruplamayı idye göre yapcaksın