2010-12-10 13 views
0

クラスのデータベースを作成する必要があります。データベースでは、ユーザーは他のユーザーを検索し、それらを友人にすることができます(Facebookのように)。私のPHPスクリプトでは、ログインしているユーザが入力した文字列と一致するすべてのユーザのために(MySQLの) 'user'テーブルを検索していて、その文字列と一致する名前のリストを提供しています。ログインしたユーザーは、友人にしたい名前をクリックすると、その人にリクエストが送信されます。クリックされた名前のユーザー名と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要求をしないのですか? –

+0

どうすればいいですか(名前を表示してGETリクエストを許可しますか?)例を挙げることはできますか? – user457666

答えて

3

私は、あなたのケースではデータベースのキーではない名前でURLを生成しているのを見ています。 UID自体をfriend_request.phpに送信し、そのUIDを使用してその人に要求を送信してみてください。

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

変数$_SESSIONを削除すると、その必要はありません。

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

friend_request.php

、ユーザーは次のようになることがありそうリストから選んたいことリスト $_GET['uid']$_GET['name']、それはあなたが人々を生成する方法によって異なり

+0

ありがとうございました!私はこれをほぼ一日中続けてきました! – user457666

+1

あなたはようこそ!また、私はあなたのクエリで直接ユーザーからのデータを使用して参照してください。私はあなたがクエリにそれを追加する前に、データをサニタイズすることをお勧めします。 – tHeSiD

0

あなたは、むしろセッションに保存しようとするよりも、それを選択するの要求に選択されている友人の値を渡す必要があります。選択した値が$_GET['name']としてfriend_request.phpスクリプトを利用できるようになります方法

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

:このような何か。

0

$_SESSION['uid']$_SESSION['name']を変更あなたのPHPコードでmakefriend.phpのようにあなたはdbからユーザIDと名前を得ることができます:

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

こちらがお役に立てば幸いです。

関連する問題