2011-11-12 76 views
0

這運行正常,沒有錯誤,它應該從登錄的用戶朋友返回評論。此代碼不顯示任何評論。我的數據庫有4個字段; user1,user2,active和id。 User1是請求成爲朋友的用戶,user2是接受它的用戶。積極的是,如果友誼正在等待或「積極」。 ID是從一開始並自動遞增的友誼ID。用戶的ID使用cookie檢索。這是我到目前爲止的代碼:消息發佈PHP和SQL

public function Updates($uid) 
{ 
    $host="localhost"; 
    $username="username"; 
    $password="password"; 
    $db_name="members"; 
    $tbl_name="friends"; 

    $user1=$_COOKIE["ID"]; 

    $link = mysql_connect("$host", "$username", "$password")or die("Cannot connect. Please contact us"); 
    mysql_select_db("$db_name")or die("Cannot select database. Please contact us"); 
    $sql="SELECT * FROM $tbl_name WHERE user1 =$user1"; 
    $result=mysql_query($sql, $link) or die ('Unable to run query:'.mysql_error()); 

    $query = mysql_query(" 
      SELECT 
      M.msg_id, 
      M.uid_fk, 
      M.message, 
      M.created, 
      U.Firstname, 
      U.Lastname 
      FROM messages M 
      JOIN users U ON U.UID = M.uid_fk 
      JOIN friends F ON M.uid_fk = F.user2 
      WHERE F.user1 = '$user1' 
      ORDER BY M.created desc 
     ") or die(mysql_error()); 
    while($row=mysql_fetch_array($query)) 
    $data[]=$row; 
    return $data; 
} 

我希望這是足以能夠明白是怎麼回事。非常感謝幫助。

表定義:

Database

回答

1

這條線:

mysql_select_db("$db_name") 

應該是:

mysql_select_db("$db_name", $link) 

而且這些線沒有做任何事情,因爲$結果從未使用過:

$sql="SELECT * FROM $tbl_name WHERE user1 =$user1"; 
$result=mysql_query($sql, $link) or die ('Unable to run query:'.mysql_error()); 

最後,U.UID應該是U.uid。我很確定MySQL是區分大小寫的。

如果您的查詢仍然存在問題,請直接在MySQL查詢瀏覽器中運行它們。它會幫助你調試你的SQL。

我也認爲你應該小心直接從cookie獲取用戶ID。欺騙cookie並不難,這將允許某人直接訪問他人的帳戶。

+0

非常有幫助!將強烈考慮cookie建議,並將重新設計這部分項目。再次感謝! – Sneitzke38