从Mysql动态创建PHP变量名


Dynamically create PHP variable name from Mysql

这可能很傻,但我有从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];

等等……?>

你能帮我一下吗,因为我被卡住了。尝试了一些解决方案,没有成功,我有一个感觉是非常基本的一块知识。非常感谢。

使用大括号" {}" ..,请参阅大括号中的说明例:

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

这是我发现的最干净的方式来处理从查询中获取的数组。顺便说一下,你不应该把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++;
     }

希望有帮助!