2017-08-06 10 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; 
}