我希望得到用户的朋友,然后得到他们的积分。为此我编写了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)) {
$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;
}
我做错了什么?
答案 0 :(得分:3)
GET_FRIENDS
仅返回第一行:
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;
}