从Mysql动态创建PHP变量名

时间:2015-10-15 08:50:50

标签: php

它可能非常愚蠢,但我在从MySql创建php变量时遇到问题。为了更清楚,我对变量名称有疑问!

我的代码:

<?
$result = $mysqli->query("SELECT * FROM items") or die(mysql_error()); 
$data = array();
while($row = $result->fetch_array())  {
    $data['price' . $row['varname']] = $_row['price'];
//// trying to get set of variables, example:
 $priceitem01 = $row[price]; 
 $priceitem02 = $row[price]; 
 etc....

    $data['name' . $row['varname']] = $row['name'];
//// trying to get set of variables, example:
     $nameitem01 = $row[name];
     $nameitem02 = $row[name];

...等     ?&GT;

请你帮助我,因为我被困了。尝试了一些没有成功的解决方案,我有一种感觉是非常基本的知识。非常感谢。

2 个答案:

答案 0 :(得分:2)

使用大括号'{}'..,请参阅curly braces的解释 例如:

$result = $mysqli->query("SELECT * FROM items") or die(mysql_error());
while($row = $result->fetch_array())  {
   ${'price'.$row['varname']} = $_row['price'];
}

如果我假设你的varname字段为item01,item02,item03 ...... 您可以使用以下命令打印变量:

echo $priceitem01;

答案 1 :(得分:0)

这是我发现从查询中使用获取数组的最干净的方法。顺便说一句,你不应该混合MySQL和mysqli函数,你需要通过查询函数中的$ link引用你的连接。在循环内部是你想要使用extract($ row)的方式,每行被提取,你可以在echo中输出该行或将其分配给变量,甚至用它来执行其他查询。

     $result = $mysqli->query($link, "SELECT * FROM items")
        or die(mysql_error()); 
            $data   = array();
            $names  = array();
            while($row = mysqli_fetch_array($result))  {
                extract ($row);
        Echo $columnyouwanttoecho;
// or if you want to form an array of your own:
$data [$i] = $price;
$names[$i]=$name;
$i++;
     }

希望有所帮助!