PHP | Mesajlaşma Sistemi Sorun

Merhaba arkadaşlar.
Mesajlaşma sistemi yapıyorum ama takıldım.

- Kişinin kendi gönderdiği ve aldığı mesajları listeletmek istiyorum. Ayrıca kim göndermiş, kim almışsa ekranda id yerine ismini yazdırmak istiyorum. Ben yapamadım.

- Yeni mesaj sayısını aldım ama yeni mesajları farklı renkte okunmuşları farklı renkte göstermek istiyorum. Yardımcı olur musunuz?

 

kullanicilar tablosu


mesajlar tablosu


login.php

<?php
include("../sistem/ayar.php"); session_start();

$kadi = $_POST["k_adi"];
$ksifre = $_POST["k_sifre"];

$bul = @mysql_query("SELECT * FROM kullanicilar WHERE kullanici_adi='$kadi' && kullanici_sifre='$ksifre'");
$say = mysql_num_rows($bul);
if($say > 0){
    
    $goster = mysql_fetch_array($bul);
    extract($goster);
    
    $_SESSION["login"] = array(
        "LoginKullaniciAdi"     => $kadi,
        "LoginKullaniciSifre"   => $ksifre,
        "LoginKullaniciEposta"  => $kullanici_eposta,
        "LoginKullaniciId"      => $kullanici_id,
        "LoginKullaniciRutbe"   => $kullanici_rutbe
    );
    
    if($_SESSION["login"] == true){
        $update = mysql_query("UPDATE kullanicilar SET kullanici_online='1' WHERE kullanici_id='$kullanici_id'");
        echo "<font color='green'>Giriş başarılı, yönlendiriliyorsunuz!</font>";
        header("Refresh:2; url='../index.php'");
    }else{
        echo "<font color='red'>Güncelleme başarısız oldu!</font>";
        header("Refresh:2; url='../index.php'");
    }
    
}else{
    echo "<font color='red'>Giriş başarısız oldu!</font>";
    header("Refresh:2; url='../index.php'");
}
?>

mesajyaz.php

<?php include("sistem/ayar.php"); session_start(); error_reporting(1); ?>
<h5 class="MesajGonderBaslik">MESAJ GÖNDER</h5>

<?php

$id      = $_POST['kullanici_id'];
$kadi    = $_POST['kullanici_adi'];

$bul =@mysql_query("SELECT * FROM kullanicilar WHERE kullanici_id='$id' && kullanici_adi='$kadi'");
extract($yaz = mysql_fetch_array($bul));

$varmi = mysql_num_rows($bul);
?>

<?php if($varmi > 0){ ?>
    <form action="index.php?git=mesaj-kayit" method="post">
        <ul class="MesajForm">
            <li><span class="MesajInputEtiket">Alıcı Adı :</span><input class="MesajInput" name="mesajalici" type="text" value="<?php echo $kullanici_adi; ?>"></li>
            <li><span class="MesajInputEtiket">Mesaj Konusu :</span><input class="MesajInput" name="mesajkonu" type="text"></li>
            <li><span class="MesajTextareaEtiket">Mesajınız :</span> <textarea class="MesajTextarea" name="mesajicerik" rows="10" cols="50" ></textarea></li>
            <li><input name="alici_id" type="hidden" value="<?php echo $id; ?>"><button type="submit" class="MesajButon">Mesajı Gönder</button></li>
            </ul>
    </form>    
<?php }else{ ?>
    Yetkiniz bulunmamaktadır!
<?php } ?>

mesajkayit.php

<?php include("../sistem/ayar.php"); session_start(); error_reporting(1); extract($_SESSION['login']); ?>

<?php

    $MesajAlici     = $_POST['alici_id'];
    $MesajKonusu    = $_POST['mesajkonu'];
    $MesajIcerik    = $_POST['mesajicerik'];
    $MesajGonderen  = $LoginKullaniciId;
    $MesajOkundu    = 1;

    $kaydet = mysql_query("INSERT INTO mesajlar (mesaj_gonderen, mesaj_alan, mesaj_konu, mesaj_icerik, mesaj_okundu) VALUES ('$MesajGonderen','$MesajAlici','$MesajKonusu','$MesajIcerik','$MesajOkundu')");

if($kaydet){
    echo "Başarılı";
}else{
    mysql_error();
}

?>

mesajlar.php

<?php include("../sistem/ayar.php"); session_start(); error_reporting(1); extract($_SESSION['login']); ?>
<h5 class="MesajGonderBaslik">MESAJLAR</h5>
  
<?php
$bul =@mysql_query("SELECT * FROM mesajlar WHERE mesaj_alan='$LoginKullaniciId'");
?>

<div id="MesajPanel">
<?php
      
    $var =@mysql_query("SELECT * FROM mesajlar WHERE mesaj_okundu='1' && mesaj_alan='$LoginKullaniciId'");
    $say = mysql_num_rows($var);
  
    if($say > 0){
        echo $say." Yeni Mesaj Var";
    }else{
         echo "Yeni Mesaj Yok";
    }
?>

<table cellpadding="10" cellspacing="0" border="1" width="100%">
    <tr>
       <td>Mesaj ID</td>
       <td>Mesaj Gönderen</td>
       <td>Mesaj Alan</td>
       <td>Mesaj Konusu</td>
       <td>Mesaj Okundu</td>
       <td>Oku</td>
    </tr>
    <?php
        while(extract($yaz = mysql_fetch_array($bul))){ ?>
        <tr>
            <td><?php echo $mesaj_id; ?></td>
            <td><?php echo $mesaj_gonderen; ?></td>
            <td><?php echo $mesaj_alan; ?></td>
            <td><?php echo $mesaj_konu; ?></td>
            <td><?php echo $mesaj_okundu; ?></td>
            <td><a href="index.php?git=mesaj-oku&id=<?php echo $mesaj_id ?>">Oku</a></td>
        </tr>
    <?php } ?>
</table>        
</div>

mesajoku.php

<?php include("../sistem/ayar.php"); session_start(); error_reporting(1); extract($_SESSION['login']); ?>
<h5 class="MesajGonderBaslik">MESAJ OKU</h5>
 
  
<?php
date_default_timezone_set('Europe/Istanbul');

$id = $_GET["id"];

$bul =@mysql_query("SELECT * FROM mesajlar WHERE mesaj_id='$id'"); ?>

<div id="UyePanel">
<table cellpadding="10" cellspacing="0" border="1" width="100%">
    <tr>
        <td>Mesaj ID</td>
        <td>Mesaj Gönderen</td>
        <td>Mesaj Alan</td>
        <td>Mesaj Konusu</td>
        <td>Mesaj İçerik</td>
    </tr>

<?php while(extract($yaz = mysql_fetch_array($bul))){ ?>
    
    <tr>
        <td><?php echo $mesaj_id ?></td>
        <td><?php echo $mesaj_gonderen; ?></td>
        <td><?php echo $mesaj_alan; ?></td>
        <td><?php echo $mesaj_konu; ?></td>
        <td><?php echo $mesaj_icerik; ?></td>
    </tr>
    
<?php }
?>

<?php
    
    $time = date("Y-m-d H:i:s");
    
    if($_SESSION["login"] == true){
        $update = mysql_query("UPDATE mesajlar SET mesaj_okundu='0', mesaj_okunma_tarih='$time' WHERE mesaj_id='$id'");
        echo "<font color='green'>Okunma başarılı!</font>";
        header("Refresh:2; url='../index.php'");
    }else{
        echo "<font color='red'>Okunma başarısız oldu!</font>";
        header("Refresh:2; url='../index.php'");
    }

?>
</table>        
</div>

 

mesajlar.php teki $bul query'de MySql JOIN kullanırsan, gönderenin ismini yazdırabilirsiniz.

Örnek:

$bul =@mysql_query("SELECT * FROM mesajlar WHERE mesaj_alan='$LoginKullaniciId'");

//yerine

$bul =@mysql_query("SELECT mesajlar.*, kullanicilar.kullanici_adi FROM mesajlar INNER JOIN kullanicilar ON kullanicilar.kullanici_id = mesajlar.gonderen WHERE mesaj_alan='$LoginKullaniciId'");

//sonra tabloda 
<td><?= $kullanici_aid ?></td>

 

Teşekkürler hocam. Aşağıdaki şekilde yaptım Gönderen İsmi yazdı ama bu sefer tabloda Mesaj Alan kısmında gönderenin ID'si yazıyor hocam. Yani normalde Mesaj Alan ID'si 1 iken gönderenin ID'si yani 2 yazıyor.

<?php
$bul =@mysql_query("SELECT mesajlar.*, kullanicilar.kullanici_adi FROM mesajlar INNER JOIN kullanicilar ON kullanicilar.kullanici_id = mesajlar.mesaj_gonderen WHERE mesaj_alan='$LoginKullaniciId'");
?>

Hocam kişinin göndermiş olduğu mesajları ve almış olduğu mesajları aynı tabloda nasıl listeleyebilirim?

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git