我必须为一个类创建一个数据库,我遇到了一件事。在数据库中,用户可以搜索其他用户并选择与他们交友(就像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;
}
答案 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'] . "%'
我希望这可以提供帮助。