0
Merhaba arkadaşlar ben facebook benzeri bir web sitesi yazıyorum.Fakat beğenme sistemine gelince takıldım kaldım.1. kulllanıcı ile Beğen yazısına tıklayınca Beğenmekten vazgeç yazıyor buraya kadar herşey tamam fakat 2. kullanıcı ile girip beğen yazısına tıklayınca 1. kullanıcıda Beğenmekten vazgeç yazısı tekrar beğen oluyor.Kodlarımı aşağıya bırakıyorum.Eğer sorun kodlardaysa yeniden kodlarım bildiğiniz video vs. varsa link bırakırsanız çok memnun olurum
anasayfa.php
<?php
$resimsor = $db->prepare("select * from paylasim ORDER BY post_id DESC");
$resimsor->execute(array());
$resimfet = $resimsor->fetchAll(PDO::FETCH_ASSOC);
foreach($resimfet as $resimcek){
$post_id = $resimcek["post_id"];
$yukleyen_id= $resimcek["yukleyen_id"];
?>
<div class="post" value="<?php echo $resimcek["post_id"] ?>">
<div class="gonderen">
<img src="img/deneme.png" width="80px" height="80px" class="yuvarlak gresim">
<a href="profil.php?getuserid=<?php echo $yukleyen_id; ?>" class="pyazi">Deneme kişi</a></br>
<a href="profil.php?getuserid=<?php echo $yukleyen_id; ?>" class="tarih">03:06:2017</a>
<?php if($resimcek["yukleyen_id"] == $ben){?>
<img src="img/sil.png" class="sil">
<?php }else{}?>
</div>
<img src="paylasimlar/<?php echo $resimcek["postresim_name"]?>" class="resimboyut">
<?php
$sorgu = $db->prepare("SELECT COUNT(*) FROM begen where like_post='$post_id'");
$sorgu->execute();
$say = $sorgu->fetchColumn();
$begenisayi = $say;
$asorgu = $db->prepare("SELECT COUNT(*) FROM comment where com_post='$post_id'");
$asorgu->execute();
$asay = $asorgu->fetchColumn();
$yorumsayi = $asay;
?>
<div class="likebutons">
<li class="lyazi"><?php echo $begenisayi; ?> Beğenme < - - - - - > <?php echo $yorumsayi; ?> yorum</li>
<?php
$likemquery = $db->query("SELECT * FROM begen where like_post='$post_id' ", PDO::FETCH_ASSOC);
if ( $likemquery->rowCount() ){
foreach( $likemquery as $likemrow ){
$begenenler = $likemrow["like_kisi"];
$likeposta = $likemrow["like_post"];
}
};
if($begenenler == $ben and $likeposta == $post_id){
?>
<a href="javaScript:;" class="lkbtn bgnm" id="<?php echo $post_id ?>">Beğenmekten Vazgeç</a>
<?php }else{ ?>
<a href="javaScript:;" class="lkbtn like" id="<?php echo $post_id ?>">Beğen</a>
<?php } ?>
<a href="javaScript:;" class="lkbtn yrmbtn" id="<?php echo $post_id ?>">Yorum Yap</a>
<a href="javaScript:;" class="lkbtn" id="<?php echo $post_id ?>">Paylaş</a>
</div>
<div class="yorumlar" >
<input type="text" name="yorumarea" class="yorumarea" id="<?php echo $post_id ?>">
<input type="submit" id="<?php echo $post_id ?>" class="yorumgonder" value="Gönder">
<?php
$comsor = $db->prepare("select * from comment where com_post='$post_id' ORDER BY com_post DESC");
$comsor->execute(array());
$comfet = $comsor->fetchAll(PDO::FETCH_ASSOC);
foreach($comfet as $comcek){
?>
<div class="comments">
<img src="img/profilresmi.jpg" class="yorumresim">
<li class="yorumisim">Ad soyad</li>
<li class="yorumyazi"><?php echo $comcek["comment"]; ?></li>
</div>
<?php }; ?>
</div>
</div>
<?php } ?>
</div>
Begen.php
<?php
include("config.php");
session_start();
$ben = $_SESSION["suye_id"];
$v = $db->prepare("insert into begen set
like_post=?,
like_kisi=?
");
if($_POST){
$likepost = $_POST["likea_id"];
$x = $v->execute(array($likepost, $ben));
}
?>
like.js
$(function(){
$("a.like").click(function(){
var likea_id = $(this).attr('id');
var deger = "likea_id="+likea_id;
$.ajax({
type: "POST",
url: "begen.php",
data: deger,
success: function(sonuca){
}
});
});
});
MYSQL veritabanı ise
Tablo:begen
sütunlar:
likde_id
like_post
like_kisi
0
Php bilgim fazla yok @toprak34 fakat hatanın nerede olduğunu söyleyebilirim.
SQL sorgularında Where kriterine Kullanıcı ID'yi de eklemelisin. Yani
SELECT * FROM begen where like_post='$post_id' "
Gibi sorgularında AND user_id=='$user_id' gibi ek bir kriter olmalı.
Ayrıca veritabanı yapısında begen tablosunda user_id var mı kontrol et.
Yani o sayfayı hangi kullanıcı beğenmiş bunun bilgisini tutuyor musun? Sende olan kullanıcı kriteri vermediğin için "global bir beğeni" söz konusu oluyor.
0
Hiç kimsenin bu konu hakkında bilgisi yok mu ?
eğer elinizde hazır bir sistem varsa onu da atabilirsiniz.İnceleyebileceğim herhangi bir kaynak vs. varsa link felan da atabilirsiniz.
Cevap yazabilmek için üye girişi yapmalısınız.
Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol