sql返回一行,而我有超过50行


sql return one row While i have over than 50 rows

嗨,伙计们,我为phpbb3编码,在自定义页面列出我的朋友,但这段代码只显示一行,只显示一个朋友给我,而我有50多个朋友?!我不是PHP专家,我刚开始学习了几个月。如果可能的话,请帮助解决我的问题。提前谢谢你。

<?
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

include_once("./friends/connect.php");
$connect = new Connect_To_DB();
$user_id = $user->data['user_id']; // id useri ke login karde be site

$query = "SELECT friend_id FROM friends WHERE user_id = '".$user_id."' AND friend =1";
$result = mysql_query($query,$connect->connect());
$connect->disconnect();     
$row = mysql_fetch_array($result);
$friends_id = $row['friend_id'];

function get_f_name($friends_id)
{
   global $db;
   $sql = 'SELECT user_id,username,username_clean,user_avatar,group_id
         FROM ' . USERS_TABLE . '
         WHERE user_id = ' . $db->sql_escape($friends_id);
   $result = $db->sql_query($sql);
   $row = $db->sql_fetchrow($result);
   $db->sql_freeresult($result);
   if($row)
   {
     $friend = array(
            'f_username'            => $row['username'],
            'f_username_clean'      => $row['username_clean'],
            'f_avatar'              => $row['user_avatar'],
            'f_group_id'            => $row['group_id'],
            'f_id'                  => $row['user_id'],
        );
        return $friend;
   }
   else
   {
      return 'Not a valid user_id!';
   }
}
$get_f_name_array = get_f_name($friends_id); //function is called
$template->assign_vars(array(       
    'F_USERNAME'                => $get_f_name_array['f_username'],
    'F_AVATAR'                  => $phpbb_root_path . "download/file.php?avatar=" . $get_f_name_array['f_avatar'],
    'F_USERNAME_CLEAN'          => $get_f_name_array['f_username_clean'],
    'F_GROUP'                   => $get_f_name_array['f_group_id'],
    'F_PROFILE'                 => $phpbb_root_path . "memberlist.php?mode=viewprofile&u=". $get_f_name_array['f_id'],
));
    $template->set_filenames(array(
    'body' => 'friends.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
while($row = mysql_fetch_array($result)){
$friends_id = $row['friend_id'];
$get_f_name_array = get_f_name($friends_id); //function is called
$template->assign_vars(array(       
    'F_USERNAME'                => $get_f_name_array['f_username'],
    'F_AVATAR'                  => $phpbb_root_path . "download/file.php?avatar=" . $get_f_name_array['f_avatar'],
    'F_USERNAME_CLEAN'          => $get_f_name_array['f_username_clean'],
    'F_GROUP'                   => $get_f_name_array['f_group_id'],
    'F_PROFILE'                 => $phpbb_root_path . "memberlist.php?mode=viewprofile&u=". $get_f_name_array['f_id'],
));
    $template->set_filenames(array(
    'body' => 'friends.html',
));

}

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();

您需要遍历结果集:

while ($row = mysql_fetch_array($result)){
   $friends_id = $row['friend_id'];
}

另外,在继续之前请阅读SQL注入。