使用数组从MySql收集数据并创建变量

时间:2017-07-28 14:29:43

标签: php arrays

我从MySql数据库中收集了大量数据字符串。数据必须在我网站上的各个不同位置使用。所以我希望将从我的数据库收集的每个字符串分配给它自己的变量。我不想一遍又一遍地写同一段代码。因此,我想使用数组来收集所有字符串并在过程中创建特定变量。以下是我所拥有的。

    $tableName = "fruits";
    $variablesArray = array(
                    "Apple",            
                    "Banana",   
                    "Coconut",          
    );

    foreach($variablesArray as $val) {
      $query = "SELECT * FROM {$tableName} WHERE ID = '{$val}'";
      $result = mysqli_query($conn, $query) or die('error');
      while($data = mysqli_fetch_array($result)) {
        For ($n = 0; $n < 1; $n++){
          ${'$val'} = $data["COLORS"];
        }
      }
      echo ${'$val'};
      echo "</br>";
    }        

在上面,我使用数组中数据库的ID来从我的数据库中收集数据。这与“绿色”,“黄色”,“棕色”相呼应。

但我想要的是制作三个变量:

  • $ Apple =“Green”
  • $ Banana =“黄色”
  • $ Coconut =“Brown”

以上代码不会创建这些代码。我不确定如何使用$ {'$ val'}来实现这一目标。我也试过创建关联数组,但是我无法得到我想要的东西。我希望有人能指出我正确的方向。谢谢!

1 个答案:

答案 0 :(得分:1)

您的问题(不一定是唯一的问题)在于${'$val'};

单引号字符串不会解析变量,因此您的变量实际上称为'$val'

使用$$val

${"$val"};也有效,因为双引号字符串会解析变量。但是在这样的简单情况下,没有必要使用引号,因为$val已经是一个字符串,并且不需要使用花括号,因为没有其他部分需要将变量与变量分开