PHP在公共函数中使用mysqli fetch_array()

时间:2014-04-08 18:16:48

标签: php function mysqli

我正在为一个网站写一个小班,下面是我的代码:

    class Main {
        public function GetLang() {
            global $link ;
            $get_lang_id = $link->query("SELECT `lang_id`,`lang_short`, `lang_name`, `lang_dir` FROM langs");
            return $get_lang_id;
        }
    }

现在回答这个问题。 而不是做

$Main = new Main;
$GetLangOptions = $Main->GetLang();
while($LangOptions = $GetLangOptions -> fetch_array()){
//do something
}

我可以将fetch_array()块添加到函数GetLang(),如下所示吗?

class Main {
    public function GetLang() {
        global $link ;
        $get_lang_id = $link->query("SELECT `lang_id`,`lang_short`, `lang_name`, `lang_dir` FROM tjcg_langs");
        $LangDetails = $get_lang_id -> fetch_array();
        return $LangDetails;
    }
 }

如果是的话......如何在调用函数后得到结果?

解: 在投票答案的帮助下使用Santosh Achari的答案here我管理了以下内容:

class Main {
    public function GetLang() {
        global $link ;
        $get_lang_id = $link->query("SELECT `lang_id`,`lang_short`, `lang_name`, `lang_dir` FROM tjcg_langs");
        $rows = array();
        while($get_lang=$get_lang_id->fetch_array(MYSQLI_ASSOC)){
        $rows[] = $get_lang;}
        return $rows;
    }
}
    $Main = new Main;
    $GetLangOptions = $Main->GetLang();
    foreach($GetLangOptions  as $LangOption){
    echo $LangOption['lang_short'];
}

2 个答案:

答案 0 :(得分:0)

你似乎在标题中有答案。使用fetch_array()而不是fetch_assoc()

 class Main {
        public function GetLang() {
            global $link ;
            $get_lang_id = $link->query("SELECT `lang_id`,`lang_short`, `lang_name`, `lang_dir` FROM langs");
            return $get_lang_id;
        }
        public function GetUserDetails($user_id) {
            global $link ;
            $get_user_details = $link->query("SELECT `tjcg_users`.`user_id`, `tjcg_users`.`user_full_name`, `tjcg_users`.`user_name`, `tjcg_users`.`user_pass`, `tjcg_users`.`user_email`, `tjcg_users`.`user_date`, `tjcg_users`.`user_level`, `tjcg_users`.`user_session_token`, `tjcg_users`.`user_photo`, `tjcg_users`.`user_gender`, `tjcg_users`.`user_last_login` FROM tjcg_users where user_id= '$user_id'");
        $UserDetails = $get_user_details -> fetch_array(MYSQLI_ASSOC);
            return $UserDetails ;
        }
    }

如果你想使用fetch_assoc,你也可以在函数GetUserDetails()中构建数组并返回它。

答案 1 :(得分:0)

你的意思是使用$ LangDetails变量吗?您可以在foreach语句或while循环中使用它来打印结果。

$Main = new Main;
$GetLangOptions = $Main->GetLang();
foreach($GetLangOptions  as $LangOption){
echo $LangOption["column1"];
}

Foreach易于管理。但你也可以使用while循环

$Main = new Main;
$GetLangOptions = $Main->GetLang();

while (list ($key, $val) = each ($GetLangOptions ) ) {
echo $val['coloumn1'];
}