它可能非常愚蠢,但我在从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;
请你帮助我,因为我被困了。尝试了一些没有成功的解决方案,我有一种感觉是非常基本的知识。非常感谢。
答案 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++;
}
希望有所帮助!