사용자의 친구를 표시하고 일부 논리 문제가있는 친구 목록 유형 기능을 사용하고 있습니다. 친구를 저장하는 테이블 설정 방법에는 3 개의 열이 있습니다. userid1, userid2 및 friendstatus. friendstatus 1은 사용자가 친구임을 나타내며 상태 0은 요청이 보류 중임을 나타냅니다. 사용자가 다른 사용자를 친구로 추가하면 요청을 보낸 사용자는 userid1에 저장되고 요청을받은 사용자는 userid2에 저장됩니다.PHP 루프 논리 문제가 발생했습니다.
그래서 내가 겪고있는 문제는 사용자가 아닌 사용자의 친구를 적절하게 선택하는 기능을 얻는 것입니다. 기본적으로이 함수는 사용자 (예를 들어)와 열 (Column)을 결정하는 데 사용됩니다.
원래 나는 다음과 같은 첫 번째 SQL 문을 가졌지 만 이것도 작동하지 않았습니다.
$friends = mysql_query("Select * from friends where (userid1 = $myUsername OR userid2=$myUsername) AND friendstatus = '1'");
다음은 내가 작성하려고하는 논리입니다.
- 가져 오기 사용자 ID (광산) 내 ID에 대한
- 검색 열 1 : 발견하는 경우, (내 친구가 될 것입니다) 표시 란이 내 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
mysql_real_escape_string을 사용하여 $ myUsername 변수를 삭제하는 것을 잊지 마십시오! 이 코드는 SQL 삽입에 취약합니다. – mpratt