Php mysql数据库功能。我卡住了
我想得到用户的朋友,然后得到他们的分数。我为此编写了3个函数。但我坚持要得到朋友的分数 这是我的密码:Php mysql数据库功能。我卡住了,php,mysql,Php,Mysql,我想得到用户的朋友,然后得到他们的分数。我为此编写了3个函数。但我坚持要得到朋友的分数 这是我的密码: function GET_POINT($p_uid){ if($p_uid){ $user_info = mysql_query("SELECT * FROM user_list WHERE fid='{$p_uid}'"); while($row = mysql_fetch_array($user_info)) { $p
function GET_POINT($p_uid){
if($p_uid){
$user_info = mysql_query("SELECT * FROM user_list WHERE fid='{$p_uid}'");
while($row = mysql_fetch_array($user_info)) {
$point = $row['point'];
return $point;
}
}
}
function GET_FRIENDS($fl_uid){
if($fl_uid){
$friend_list_query = mysql_query("SELECT * FROM friend_list WHERE fid='{$fl_uid}'");
$friend_list = mysql_fetch_array($friend_list_query);
return $friend_list;
}
}
function GET_FRIEND_POINTS($fp_uid){
$friend_array = GET_FRIENDS($fp_uid);
$point = '0';
while($row = $friend_array){
$point += GET_POINT($row['fri_id']);
}
return $point;
}
我做错了什么?获取朋友的
只返回第一行:
function GET_FRIENDS($fl_uid){
if ($fl_uid){
$friend_list_query = mysql_query("SELECT * FROM friend_list WHERE fid='{$fl_uid}'");
$friend_list = array();
// fetch all rows and add them to our $friend_list array
while ($row = mysql_fetch_array($friend_list_query)) {
$friend_list[] = $row;
}
return $friend_list;
}
}
然后,您需要更新代码以循环遍历数组中的每个元素:
function GET_FRIEND_POINTS($fp_uid){
$friend_array = GET_FRIENDS($fp_uid);
$point = 0;
// loop through each element in the array - you should also check so the array
// isn't empty before the loop
foreach ($friend_array as $row) {
$point += GET_POINT($row['fri_id']);
}
return $point;
}
您得到了什么结果/错误?其余的结果/错误在哪里?您正在打开数据库连接吗?GET_POINT函数可以工作。我能理解你的意思。但我认为“交朋友”功能不起作用。没有错误,但返回“Array”。@ErinçFırtına显然,mysql_fetch_Array
返回一个数组。你真正想要的是一个多维数组,就像@Krister Andersson的解决方案一样。除了其他人提到的,如果你的最终范围是得到一个用户所有朋友的所有点的总和。。。我建议您创建第四个函数,它连接表并直接从SQL返回点的总和。