2010-12-10 21 views
0

我必須爲一個類創建一個數據庫,並且我遇到了一件事。在數據庫中,用戶可以搜索其他用戶並選擇朋友(就像facebook一樣)。在我的php腳本中,我搜索我的'用戶'表(在MySQL中)所有匹配登錄用戶輸入的字符串的用戶,並提供與字符串匹配的名稱列表。登錄的用戶然後可以點擊他們想要的朋友的名字,並向該人發送請求。我不知道如何檢索被點擊的名稱的用戶名和ID。例如,如果顯示的名稱列表是:

薩利
凱文
邁克

和薩利用戶點擊,我怎麼能找回她的用戶名和ID?在我使用的sql查詢中,最後一個人位於數組的頂部,因此他們登錄的用戶總是嘗試給朋友Mike。任何建議將是偉大的!

$ _SESSION值取數組中的姓氏。我怎樣才能讓它取得登錄用戶點擊的名字?

或者是否有更好的方法來做到這一點?

這是到目前爲止我的代碼:

$sql="SELECT uid, name FROM user WHERE name LIKE '%" . $name . "%'"; 

//run the query against the mysql query function 
$result=mysql_query($sql); 

//create while loop and loop through result set 
while($row=mysql_fetch_array($result)){ 
     $name=$row[name]; 
     $uid=$row[uid]; 

     //display the result of the array 
     echo "<ul>\n"; 
     echo "<a href=\"friend_request.php\">" .$name. "</a>"; 
     echo "</ul>"; 
     $_SESSION['friend_name'] = $name; 
     $_SESSION['friend_id'] = $uid; 
} 
+1

你爲什麼使用這個會話?爲什麼不直接做GET請求? – 2010-12-10 19:01:05

+0

我該怎麼做(顯示名稱並允許GET請求?)你能提供一個例子嗎? – user457666 2010-12-10 19:03:37

回答

3

我看到你正在生成一個名稱的URL,在你的情況下,它不是數據庫中的鍵。爲什麼不將UID本身發送給friend_request.php,然後使用該UID將請求發送給該人員。

echo "<a href=\"friend_request.php?uid=".$uid."&name=".$name.">" .$name. "</a>"; 

刪除$_SESSION變量,你不需要它。

friend_request.php,改變$_SESSION['uid']$_SESSION['name']$_GET['uid']$_GET['name']

+0

非常感謝!我幾乎整天都在努力! – user457666 2010-12-10 19:53:43

+1

不客氣!此外,我看到您直接在查詢中使用來自用戶的數據。我建議您在將數據添加到查詢之前先清理數據。 – tHeSiD 2010-12-10 19:55:32

0

您應該通過朋友的價值被選到的Selecting它,而不是試圖將其存儲在會話的請求。事情是這樣的:

echo "<a href=\"friend_request.php?name=" .$name. "\">" .$name. "</a>"; 

這樣選擇的將是提供給friend_request.php腳本$_GET['name']值。

0

這取決於你如何產生的人列出用戶希望從這樣的列表中選擇可能是這樣:

<a href="http://..../makefriend.php?name=sally">sally</a> 

並在你的PHP代碼又名makefriend.php你可以得到用戶名和數據庫的名字,如:

$result = mysql_query("SELECT uid, name FROM user WHERE name LIKE '%" . $_get['name'] . "%' 

我希望這可以提供幫助。