使用$ _SESSION从mysql返回值中检索信息

时间:2010-12-10 18:58:53

标签: php mysql

我必须为一个类创建一个数据库,我遇到了一件事。在数据库中,用户可以搜索其他用户并选择与他们交友(就像facebook一样)。在我的PHP脚本中,我正在搜索我的“用户”表(在MySQL中),查找与登录用户输入的字符串匹配的所有用户,并提供与该字符串匹配的名称列表。然后,登录用户可以单击他们想要的朋友的姓名,并向该人发送请求。我不知道如何检索点击的名称的用户名和ID。例如,如果显示的名称列表是:

萨利
凯文
迈克

并且用户点击了Sally,我该如何检索她的用户名和ID?在我使用的sql查询中,最后一个人位于数组的顶部,因此他们登录用户总是尝试与朋友迈克。任何建议都会很棒!!

$ _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;   
}

3 个答案:

答案 0 :(得分:3)

我看到你正在生成一个带有名字的url,在你的情况下,这个名字不是数据库中的密钥。为什么不将UID本身发送到friend_request.php,然后使用该UID将请求发送给该人。

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

删除$_SESSION变量,你不需要它。

friend_request.php中,将$_SESSION['uid']$_SESSION['name']更改为 $_GET['uid']$_GET['name']

答案 1 :(得分:0)

您应该将正在选择的朋友的值传递给选择它的请求,而不是尝试将其存储在会话中。像这样:

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

这样,所选的值将friend_request.php脚本作为$_GET['name']使用。

答案 2 :(得分:0)

这取决于您如何生成用户想要选择的人员列表,因此列表可能如下:

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

并在您的PHP代码aka makefriend.php中,您可以从db获取用户ID和名称,如:

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

我希望这可以提供帮助。