Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql数据库功能。我卡住了_Php_Mysql - Fatal编程技术网

Php mysql数据库功能。我卡住了

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

我想得到用户的朋友,然后得到他们的分数。我为此编写了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;
}

我做错了什么?

获取朋友的
只返回第一行:

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返回点的总和。