-1

以前にここで質問したところ、非常に迅速かつ簡潔に回答されました。ありがとうございます:)。しかし、現在、検索スクリプトがデータベースから現在のユーザーを取得したくないときに、現在のユーザーを取得しているという問題があります。MrDare360 というアカウントでログインしているとします。データベースから自分の情報を取得するのではなく、検索スクリプトを使用して他の人の情報のみを取得します。データベースから結果を削除するために SQL クエリで NOT LIKE と != を使用しようとしましたが、うまくいきません。

これは私の現在のコードです: http://pastebin.com/GXAbQJRb

これが私のデータベースです: http://gyazo.com/4b725e7e283d963ad4d0652da0a52a92

これを行うための最も簡単または最良の方法は何ですか? ありがとう。

編集:現在のユーザーのユーザー名、電子メール、および ID はセッションに保存されます。これらを使用して、検索スクリプトがアカウントの結果を取得しないように制限したいと考えています。

4

2 に答える 2

0

これはうまくいくはずです:

$your_username = $_SESSION['username'];

$query = $sqli_con->query("
    SELECT 
         id, username, avatar, first_name, last_name, 
         country, gender, user_level 
    FROM 
         members 
    WHERE 
         username LIKE '%$search_query%' AND 
         username NOT IN ('$your_username')
");

ユーザー名セッション変数が SQL に対して安全であると想定していることに注意してください。また、外部データを扱うときはいつでも準備済みステートメントを使用する必要があることに注意してください。

于 2013-01-18T12:56:46.240 に答える
0

このクエリを書くだけです

SELECT id, username, avatar, first_name, last_name, country, gender, user_level 
FROM members WHERE username LIKE '%$search_query%' AND id!='$_SESSION[id]'

次に、ログインユーザー名なしですべてのユーザーを取得します

于 2013-01-18T13:03:15.490 に答える