这可能很傻,但我有从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++;
}
希望有帮助!