2011-09-06 21 views
1

http://localhost/like.php?f=1試圖增加一個「喜歡」下面被傳遞到瀏覽器系統

其中f = 1是我想像物品ID。有一個用戶系統,我只希望他們能夠喜歡文章一次(出於顯而易見的原因)。我的代碼從數據庫中獲取有關文章的信息,然後查看用戶信息(從當前會話中獲取ID),然後檢查用戶是否已經喜歡這一點,如果不插入類似的數據庫,或者返回到文章頁面。這裏是我的代碼至今..

正如你可以在代碼中看到,我一直在試圖調試,但它不會很好......

<?php 
include "connect.php"; 
session_start(); 
$feed = $_GET['f']; 
$feeddb = "SELECT * from feeddb where ID=$feed"; 
$feeddb2 = mysql_query($feeddb) or die("Whuuut?"); 
$feeddb3 = mysql_fetch_array($feeddb2); 
if (isset($_SESSION['usrname'])) 
{ 
    $player=$_SESSION['usrname']; 
    $userstats="SELECT * from feedus where tit='$player'"; 
    $userstats2=mysql_query($userstats) or die("Could not get user stats"); 
    $userstats3=mysql_fetch_array($userstats2); 
    $feedli = "SELECT * from feedli where PID=$feed"; 
    $feedli2 = mysql_query($feedli) or die("Could not get likes"); 
    while($feedli3=mysql_fetch_array($feedli2)) 
    { 
     if($userstats3['ID'] == $feedli3['UID']) 
     { 
      echo $userstats3[ID]; 
      echo $feedli3[UID]; 
     } else { 
      $updatelike = 
       "INSERT into feedli (PID, UID) values('$feed','$userstats3[ID]')"; 
      $updatelike2 = mysql_query($updatelike); 
      echo $userstats3[ID]; 
      echo $feedli3[UID]; 
     } 
    } 
} 
else 
{ 
} 
?> 

任何幫助,將不勝感激!

編輯:對於清晰度 - 我希望代碼將PID(文章ID在$ feed中)和UID(這是用戶ID在$ userstats3 [ID]中)插入到表FEEDLI中,如果他們有,就很喜歡這篇文章,跳過代碼並回到上一篇文章。

+0

也許你應該描述問題是什麼?也就是說,你期望代碼做什麼? –

+0

編輯......... –

回答

1

我認爲你沒有在代碼中使用$ feeddb3 ..這可能是有用的。也儘量避免sql注入。

<?php 
session_start(); 
include "connect.php"; 
$feed = $_GET['f']; 

if (isset($_SESSION['usrname'])) 
{ 
    $player=$_SESSION['usrname']; 
    $userstats2=mysql_query("SELECT * from feedus where tit='".mysql_real_escape_string(stripslashes($player))."'") or die("Could not get user stats"); 
    $userstats3=mysql_fetch_array($userstats2); 

    $feedli2 = mysql_query("SELECT * from feedli where PID='".mysql_real_escape_string(stripslashes($feed))."' AND UID = '".$userstats3['ID']."'"); 

    if(!mysql_num_rows($feedli2)) 
    { 
     $updatelike2 = mysql_query("INSERT into feedli (PID, UID) values('".mysql_real_escape_string(stripslashes($feed))."','".mysql_real_escape_string(stripslashes($userstats3['ID']))."')"); 
     echo $userstats3['ID']; 
    } 
    else 
    { 
     echo "already liked"; 
    } 

} 
?> 
+0

您先生,是傳奇! –

+0

快樂編碼哥們.. :) – mithunsatheesh

0

在執行插入查詢$updatelike = "INSERT into feedli (PID, UID) values('$feed','$userstats3[ID]')";之前,您應該檢查是否有一個包含傳輸的PID和UID的數據集。如果有的話,什麼都不做......如果沒有,執行插入。 我希望我沒有誤解你的問題。

0

首先,您可能想給您的變量多一些有意義的名稱 - 只是爲了提高可讀性。另外,請注意可能的SQL注入!

第二,如上所述,您可以通過檢查您的喜歡錶中是否存在元組(user_id,feed_id)以更快的方式執行此操作。我已經停止了寫作,因爲上面應該可以正常工作,儘管您可以合併feedli2和userstats2查詢。