私は友人リストタイプの機能に取り組んでいます。これはユーザーの友人を表示し、ロジック上問題があります。友人を保存するためのテーブルが設定される方法は、3つの列があります。 userid1、userid2、およびfriendstatusです。 friendstatusが1の場合はユーザーが友人であることを示し、ステータスが0の場合はリクエストが保留中であることを示します。ユーザーが別のユーザーを自分の友人に追加すると、要求を送信したユーザーはuserid1に置かれ、要求を受け取ったユーザーはuserid2に入れられます。PHPループロジックのトラブル
私は、自分自身ではなく、ユーザーの友人を適切に選択する機能を使用しています。基本的には、私はどのカラムがユーザ(私の場合)であり、どのカラムがフレンドであるかを判断するためにこの関数を取得しようとしています。
私は元々次のような最初のSQL文を持っていましたが、これはどちらもうまくいきませんでした。
$friends = mysql_query("Select * from friends where (userid1 = $myUsername OR userid2=$myUsername) AND friendstatus = '1'");
ここに私が作成しようとしているロジックがあります。
- のGetユーザー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
$ myUsername変数をmysql_real_escape_stringでサニタイズすることを忘れないでください!このコードはSQLインジェクションに対して脆弱です。 – mpratt