2017-08-06 36 views
3

我想添加多个语言选项的数据库。我创建了一个表格如下。语言表php空结果

enter image description here

我的PHP函数为:

public function Languages(){ 
    $query=mysqli_query($this->db," 
SELECT * FROM languages") or die(mysqli_error($this->db)); 
       while($row=mysqli_fetch_array($query,MYSQLI_ASSOC)) { 
       $data[]=$row; 
       } 
      if(!empty($data)) { 
       // Store the result into array 
       return $data; 
       } 
      } 

所以我也用下面的代码显示的结果,但我得到了空的结果:

<?php 
    $language = $ReSult->Languages(); 
    $userLanguage = 'english'; 
    echo $language['your_family'][$userLangauge]; 
?> 

我知道我使用$language['1'][$userLanguage];然后我得到一个结果,但我不想在这里使用ID。有没有办法做到这一点,而不使用IDS显示结果?

回答

2

您可以在结果存储在一个关联数组:

while ($row = mysqli_fetch_array($query,MYSQLI_ASSOC)) { 
    $data[$row['lang_key']] = $row; 
} 

这样,您就可以直接访问数据的关键:

echo $language['your_family'][$userLangauge]; 
+1

我不知道该怎么做。谢谢,亲爱的。 – Azzo

1

结帐这个

function getIndex($language , $key) 
{ 
    foreach ($language as $row) 
    { 
    if (strcmp($row["lang_key"] , $key)==0) { 
     return $row["id"] 
    } 
    } 
    return null; 
} 

... 

echo $language[getIndex($language , "your_family")][$userLanguage]; 
1

你可以这样试试,

while ($row = mysqli_fetch_assoc($query)) { 
    $data[$row['tagKey']] = $row; 
}