我正在做一個朋友列表類型的功能,將顯示用戶的朋友,我有一些邏輯問題。存儲朋友的表格的設置方式有3列, userid1,userid2和friendstatus。好友狀態1表示用戶是朋友,狀態0表示請求正在等待。當用戶添加另一個用戶作爲他們的朋友時,發送請求的用戶被放置在userid1中,並且接收請求的用戶被放置在userid2中。PHP循環邏輯麻煩
所以,我遇到的問題是獲取功能來正確選擇用戶的朋友,而不是用戶本人。基本上,我試圖讓這個函數來確定哪個列是用戶(例如我)和哪一列是朋友。
我最初有第一個SQL語句如下,但這也沒有工作。
$friends = mysql_query("Select * from friends where (userid1 = $myUsername OR userid2=$myUsername) AND friendstatus = '1'");
下面是我試圖創建的邏輯。
- 獲取用戶ID(礦)
- 搜索我的ID列1:如果找到,顯示第2列(這將是我的朋友)
- 我的ID搜索欄2:如果找到,顯示欄1 (這將是我的朋友)
函數friendslookup只是顯示信息並提取用戶的信息。它不會增加邏輯。
$myUsername = $_GET['myFriends'];
if(isset($myUsername)){
$friends = mysql_query("Select * from friends where userid1 = $myUsername AND friendstatus = '1'");
$friends2 = mysql_query("Select * from friends where userid2 = $myUsername AND friendstatus = '1'");
if(mysql_num_rows($friends) > 0 OR mysql_num_rows($friends2) >0) {
echo '<table><tr><td>Username </td><td> Location</td></tr>';
$col1rows = mysql_num_rows($friends);
$col2rows = mysql_num_rows($friends2);
}
for ($i=0; $i<$col1rows;$i++){
$myFriends = mysql_query("Select * from friends where userid1 = $myUsername AND friendstatus = '1'");
$friend = mysql_fetch_array($myFriends);
$friend_1 = $friend['userid2'];
friendsLookup($friend_1,$myUsername);
}
for ($i=0; $i<$col2rows;$i++){
$myFriends_2 = mysql_query("Select * from friends where userid2 = $myUsername AND friendstatus = '1'");
$friend = mysql_fetch_array($myFriends_2);
$friend_2 = $friend['userid1'];
friendsLookup($friend_2,$myUsername);
}
}
太棒了,完美的工作! – user1104854 2012-02-02 02:28:37
請不要忘記用mysql_real_escape_string來清理$ myUsername變量!此代碼易受SQL注入攻擊。 – mpratt 2012-02-02 02:36:07