Realtime notif php native

Hallo All 😁!

Disini saya baru saja mengikuti tutorial membuat realtime notifikasi dengan php mysqli & ajax,

Code [ index.php ] :

<!DOCTYPE html>
<html>
<head>
 <title>Notification using PHP Ajax Bootstrap</title>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
</head>
<body>
 <br /><br />
 <div class="container">
  <nav class="navbar navbar-inverse">
   <div class="container-fluid">
    <div class="navbar-header">
     <a class="navbar-brand" href="#">PHP Notification Real Time Tutorial</a>
    </div>
    <ul class="nav navbar-nav navbar-right">
     <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="label label-pill label-danger count" style="border-radius:10px;"></span> <span class="glyphicon glyphicon-bell" style="font-size:18px;"></span></a>
      <ul class="dropdown-menu"></ul>
     </li>
    </ul>
   </div>
  </nav>
  <br />
  <form method="post" id="comment_form">
   <div class="form-group">
    <label>Enter Subject</label>
    <input type="text" name="subject" id="subject" class="form-control">
   </div>
   <div class="form-group">
    <label>Enter Comment</label>
    <textarea name="comment" id="comment" class="form-control" rows="5"></textarea>
   </div>
   <div class="form-group">
    <input type="submit" name="post" id="post" class="btn btn-info" value="Post" />
   </div>
  </form>
 </div>
</body>
<script type="text/javascript">
$(document).ready(function(){
// updating the view with notifications using ajax
function load_notification(view = '')
{
 $.ajax({
  url:"fetch.php",
  method:"POST",
  data:{view:view},
  dataType:"json",
  success:function(data)
  {
   $('.dropdown-menu').html(data.notification);
   if(data.unseen_notification > 0)
   {
    $('.count').html(data.unseen_notification);
   }
  }
 });
}

load_notification();
// submit form and get new records
$('#comment_form').on('submit', function(event){
 event.preventDefault();
 if($('#subject').val() != '' && $('#comment').val() != '')
 {
  var form_data = $(this).serialize();
  $.ajax({
   url:"insert.php",
   method:"POST",
   data:form_data,
   success:function(data)
   {
    $('#comment_form')[0].reset();
    load_notification();
   }
  });
 }
 else
 {
  alert("Subject & Comments Harus Diisi");
 }
});
// load new notifications
$(document).on('click', '.dropdown-toggle', function(){
 $('.count').html('');
 load_notification('yes');
});
setInterval(function(){
 load_notification();
}, 5000);
});
</script>
</html>

Code [ insert.php ]

<?php
if(isset($_POST["subject"]))
{
include("connect.php");
$subject = mysqli_real_escape_string($con, $_POST["subject"]);
$comment = mysqli_real_escape_string($con, $_POST["comment"]);
$query = "INSERT INTO comments(comment_subject, comment_text)VALUES ('$subject', '$comment')";
mysqli_query($con, $query);
}
?>

Code [ fetch.php ] :

<?php
include('connect.php');
if(isset($_POST['view'])){
if($_POST["view"] != '')
{
   $update_query = "UPDATE comments SET comment_status = 1 WHERE comment_status=0";
   mysqli_query($con, $update_query);
}
$query = "SELECT * FROM comments ORDER BY comment_id DESC LIMIT 2";
$result = mysqli_query($con, $query);
$output = '';
if(mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_array($result))
{
  $output .= '
  <li>
  <a href="#">
  <strong>'.$row["comment_subject"].'</strong><br />
  <small><em>'.$row["comment_text"].'</em></small>
  </a>
  </li>
  ';
}
}
else{
    $output .= '<li><a href="#" class="text-bold text-italic">No Notif Found</a></li>';
}
$status_query = "SELECT * FROM comments WHERE comment_status=0";
$result_query = mysqli_query($con, $status_query);
$count = mysqli_num_rows($result_query);
$data = array(
   'notification' => $output,
   'unseen_notification'  => $count
);
echo json_encode($data);
}
?>

Jadi rencana nya saya akan membuat notifikasi di blog, agar apabila artikel itu di komentari orang, dan notifikasinya itu hanya terkirim ke user yang menulis artikel nya saja, tidak ke seluruh user.

Output dari kode diatas apabila ada orang yang berkomentar, notifikasinya terkirim ke semua user, walaupun bukan dia yang menulis artikel itu.

Kalau ada pertanyaan saya / codenya yang kurang jelas,

bisa tanyakan saja ke saya lagi....

avatar creativechannel_google
@creativechannel_google

7 Kontribusi 8 Poin

Diperbarui 3 tahun yang lalu

2 Jawaban:

<div>Harusnya di table comments ada kolom user_id nya, ini digunakan untuk mengetahui siapa yang melakukan komentar, kemudian untuk masalah notifikasi, kan logikanya tinggal ambil user_id di table posts sama user_id di table comments untuk mengetahui siapa yg melakukan komentar, dan kepada siapa notifikasi itu ditujukan.</div>

avatar ahanafi
@ahanafi

815 Kontribusi 552 Poin

Dipost 3 tahun yang lalu

Tanggapan

Seandainya saya sudah tambahkan kira" logika pembuatannya gimana yaa?

ambil data user_id dari table posts, kemudian ketika komentar sudah disubmit, nantikan berarti ada komentar yang un-seen, data komentar yang unseen tersebut ditampilkan hanya kepada user dengan nilai user_id yang sama dengan user_id di table posts (si pembuat postingan)

Kalau kode ini :

<pre>&lt;?php mysqli_query($db, "UPDATE lihat SET lihat='0' WHERE user_lihat='$_SESSION[user]' AND apa_lihat='like'"); $useruser = @$_GET["post_user"]; $userquery = mysqli_query($db, "SELECT*FROM user WHERE user_user='$useruser'"); $datauseruser = mysqli_fetch_array($userquery);

?&gt; &lt;title&gt;&lt;?php echo $datauseruser["nama_user"];?&gt; | Notifikasi Jempol - 8.5 Web Grup&lt;/title&gt; &lt;?php if (@$_SESSION["user"] == $useruser) { ?&gt; &lt;div id="page-inner"&gt; &lt;div class="row"&gt; &lt;div class="col-md-12"&gt; &lt;h3 class="page-head-line"&gt;Notifikasi Jempol Pada Postingan&lt;/h3&gt; &lt;h3 class="page-subhead-line"&gt;Jika Pengguna Lain Memberi Jempol Pada Postingan &lt;b&gt;&lt;?php echo $data2["nama_user"];?&gt;&lt;/b&gt;, Maka Akan Tampil Disini&lt;/h3&gt;

        &amp;lt;div&amp;gt;
            &amp;lt;?php
            $batas = 10;

            if (isset($_GET[&quot;hal&quot;])) {
                $hal = (int)$_GET[&quot;hal&quot;];
                $posisi = ($hal-1)*$batas;
            }
            else{
                $hal = 1;
                $posisi = 0;
            }
            $querykomentarnya = mysqli_query($db, &quot;SELECT*FROM suka_post WHERE penulis_post=&#039;$data2[user_user]&#039; AND user_suka !=&#039;$_SESSION[user]&#039; ORDER BY id_suka DESC LIMIT $posisi, $batas&quot;);
            $hitung = mysqli_num_rows($querykomentarnya);

            if (empty($hitung)) {
                echo &quot;&amp;lt;div class=&#039;alert alert-warning&#039;&amp;gt;Belum Ada Jempol Lagi Di Postingan Kamu&amp;lt;/div&amp;gt;&quot;;
            }
            else{

            while ($datakomennya = mysqli_fetch_array($querykomentarnya)) {
                $datakomentar = mysqli_fetch_array(mysqli_query($db, &quot;SELECT*FROM user WHERE user_user=&#039;$datakomennya[user_suka]&#039;&quot;));
                $queryposnya = mysqli_query($db, &quot;SELECT*FROM post WHERE id_post=&#039;$datakomennya[id_post]&#039;&quot;);
                $datapostnya = mysqli_fetch_array($queryposnya);
                $judulpostnya = $datapostnya[&quot;judul_post&quot;];
                if ($datakomennya[&quot;lihat_suka&quot;] == 1) {
               ?&amp;gt;
               &amp;lt;div class=&#039;alert alert-warning&#039;&amp;gt;&amp;lt;small&amp;gt;&amp;lt;?php echo $datakomennya[&quot;tanggal_suka&quot;];?&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i class=&#039;fa fa-thumbs-o-up&#039;&amp;gt;&amp;lt;/i&amp;gt;  
               &amp;lt;span class=&quot;badge&quot;&amp;gt;Baru!&amp;lt;/span&amp;gt; &amp;lt;?php
    if ($datakomentar[&quot;pp_user&quot;] == &#039;&#039;) {
    ?&amp;gt;
    &amp;lt;img src=&quot;./assets/img/user/user.jpg&quot; style=&quot;width:25px;height:25px;border-radius:100%;&quot;&amp;gt;
    &amp;lt;?php
    }
    else{
    ?&amp;gt;
    &amp;lt;img src=&quot;./assets/img/user/&amp;lt;?php echo $datakomentar[&quot;pp_user&quot;];?&amp;gt;&quot; style=&quot;width:25px;height:25px;border-radius:100%;&quot;&amp;gt;
    &amp;lt;?php
    }
    ?&amp;gt;&amp;lt;b&amp;gt;&amp;lt;a href=&quot;./?p=user&amp;amp;user=&amp;lt;?php echo $datakomennya[&quot;user_suka&quot;];?&amp;gt;&quot;&amp;gt;@&amp;lt;?php echo $datakomennya[&quot;user_suka&quot;];?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt; Ngasih Jempol Pada Postingan &amp;lt;b&amp;gt;&amp;lt;a href=&quot;./?p=post&amp;amp;id=&amp;lt;?php echo $datapostnya[&quot;id_post&quot;];?&amp;gt;&amp;amp;post_by=&amp;lt;?php echo $datapostnya[&quot;penulis_post&quot;];?&amp;gt;&quot;&amp;gt;&amp;lt;?php echo $judulpostnya;?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt; Kamu&amp;lt;/div&amp;gt;
               &amp;lt;?php
           }
            elseif ($datakomennya[&quot;user_suka&quot;] !== $_SESSION[&quot;user&quot;]){
            ?&amp;gt;
            &amp;lt;div class=&#039;alert alert-info&#039;&amp;gt;&amp;lt;small&amp;gt;&amp;lt;?php echo $datakomennya[&quot;tanggal_suka&quot;];?&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i class=&#039;fa fa-thumbs-o-up&#039;&amp;gt;&amp;lt;/i&amp;gt;
    &amp;lt;b&amp;gt;&amp;lt;a href=&quot;./?p=user&amp;amp;user=&amp;lt;?php echo $datakomennya[&quot;user_suka&quot;];?&amp;gt;&quot;&amp;gt;&amp;lt;?php if ($datakomentar[&quot;pp_user&quot;] == &#039;&#039;) {
    ?&amp;gt;
    &amp;lt;img src=&quot;./assets/img/user/user.jpg&quot; style=&quot;width:25px;height:25px;border-radius:100%;&quot;&amp;gt;
    &amp;lt;?php
    }
    else{
    ?&amp;gt;
    &amp;lt;img src=&quot;./assets/img/user/&amp;lt;?php echo $datakomentar[&quot;pp_user&quot;];?&amp;gt;&quot; style=&quot;width:25px;height:25px;border-radius:100%;&quot;&amp;gt;
    &amp;lt;?php
    }
    ?&amp;gt;@&amp;lt;?php echo $datakomennya[&quot;user_suka&quot;];?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt; Ngasih Jempol Pada Postingan &amp;lt;b&amp;gt;&amp;lt;a href=&quot;./?p=post&amp;amp;id=&amp;lt;?php echo $datapostnya[&quot;id_post&quot;];?&amp;gt;&amp;amp;post_by=&amp;lt;?php echo $datapostnya[&quot;penulis_post&quot;];?&amp;gt;&quot;&amp;gt;&amp;lt;?php echo $judulpostnya;?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt; Kamu&amp;lt;/div&amp;gt;
            &amp;lt;?php
        }
        }
            }
            $hitung2 = mysqli_num_rows(mysqli_query($db, &quot;SELECT*FROM suka_post WHERE penulis_post=&#039;$_SESSION[user]&#039;&quot;));
            $bagi = ceil($hitung2/$batas);
            for ($i=1; $i &amp;lt;= $bagi ; $i++) { 
                if ($hal==$i) {
                                echo &quot;&amp;lt;span style=&#039;background:grey;border-radius:100%;padding:10px;color:lightblue;&#039;&amp;gt;$i&amp;lt;/span&amp;gt; &quot;;
                            }
                            else{
                                echo &quot;&amp;lt;a href=&#039;./?p=jempol&amp;amp;post_user=$_SESSION[user]&amp;amp;hal=$i&#039;&amp;gt;&amp;lt;span class=&#039;badge&#039;&amp;gt;$i&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt; &quot;;
                            }
            }
            mysqli_query($db, &quot;UPDATE suka_post SET lihat_suka=&#039;0&#039; WHERE penulis_post=&#039;$_SESSION[user]&#039;&quot;);
            ?&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

&lt;?php } else{ echo "&lt;script&gt;window.location='./?p=jempol&amp;post_user=$_SESSION[user]';&lt;/script&gt;"; } ?&gt;</pre><div>Kode ini say dapat Dari source code orang lain, tapi kodenya sulit di baca + udah di ulang" baca kodenya masih belum paham juga,<br><br>Kira" $posisi &amp; $batas it variabel menyatakan apa&nbsp; yaa? *Masih bingung</div>

avatar creativechannel_google
@creativechannel_google

7 Kontribusi 8 Poin

Dipost 3 tahun yang lalu

Tanggapan

$posisi dan $batas itu untuk pagination

Login untuk ikut Jawaban