【问题标题】:Using array to collect data from MySql and creating variables使用数组从 MySql 中收集数据并创建变量
【发布时间】:2017-07-28 14:29:43
【问题描述】:

我正在从 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 = "绿色"
  • $Banana = "黄色"
  • $Coconut = "棕色"

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

【问题讨论】:

  • 您的表格是否包含字符串 ID?
  • 您应该创建一个加载这些变量的类。然后你可以在你需要的地方注入同一个类实例(它已经在实例化中加载了变量),而不是用一堆变量来混乱全局范围。
  • 用户双人玩偶。 $$val = $data["颜色"];并回显 $$val
  • 你为什么不获取 one 中的所有值 select (with `where ID in('Apple','Banana',..)?

标签: php arrays


【解决方案1】:

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

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

使用$$val

${"$val"}; 也是有效的,因为双引号字符串会解析变量。然而,在这种简单的情况下,没有必要使用引号,因为$val 已经是一个字符串,并且没有必要使用花括号,因为字符串的其他部分没有您想要将变量从中分隔出来。

【讨论】:

    猜你喜欢
    • 2022-11-30
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-22
    相关资源
    最近更新 更多