我正在为一个网站写一个小班,下面是我的代码:
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'];
}
答案 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'];
}