【问题标题】:php empty result for language tablephp 语言表的空结果
【发布时间】:2017-08-06 09:53:33
【问题描述】:

我正在尝试为数据库添加多种语言选项。我创建了一个如下表。

而我的 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。有什么方法可以在不使用 id 的情况下显示结果?

【问题讨论】:

    标签: php mysql arrays


    【解决方案1】:

    您可以将结果存储在关联数组中:

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

    这样,您可以直接通过其键访问数据:

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

    【讨论】:

    • 我不知道该怎么做。谢谢你,亲爱的。
    【解决方案2】:

    看看这个

    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];
    

    【讨论】:

      【解决方案3】:

      你可以这样试试,

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

      【讨论】:

        猜你喜欢
        • 2016-09-20
        • 2018-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-03
        • 2012-08-01
        • 2011-02-07
        • 1970-01-01
        相关资源
        最近更新 更多