我的数据库结构如下所示:
我试图将价格存储为变量,这样如果我引用cage_linear_feet,它将显示225。
我尝试过以下代码:
$sql = "SELECT * from pricing WHERE region = '$region' ";
$result = mysqli_query($conn, $sql);
while($rows=mysqli_fetch_assoc($result)){
$test[] = array($rows['field']=>$rows['price']);
}
print_r ($test);
显示以下内容:
Array ( [0] => Array ( [cage_linear_feet] => 225 ) [1] => Array ( [cage_doors] => 1800 ) )
如何访问" 225"和" 1800"值确保如果将更多记录添加到数据库,它仍将获取正确的记录。例如,如果添加了记录,则cage_doors的$ test 1可能会发生变化。
答案 0 :(得分:2)
我的观点是,将键值对包装在各自独立的数组中是没有意义的。我会改变这一行:
$test[] = array($rows['field']=>$rows['price']);
到此:
$test[$rows['field']] = $rows['price'];
数据关联将保留在一个关联数组($ test)的key =>值对中。所以echo $ test [' cage_linear_feet'] ---> 225
答案 1 :(得分:1)
如果要将field
设置为数组键
$sql = "SELECT * from pricing WHERE region = '$region' ";
$result = mysqli_query($conn, $sql);
while($rows=mysqli_fetch_assoc($result)){
$test[$rows['field']] = $rows['price']);
}
print_r ($test);
不,你应该能够像field
那样引用:
echo $test['cage_doors'];
// returns 1800
答案 2 :(得分:0)
列'字段'是唯一的吗?如果是这样,请执行以下操作:
while($rows=mysqli_fetch_assoc($result)){
$test[$rows['field']] = $rows['price'];
}
这会将数组中的键设置为字段,即
Array('cage_doors' => 1800)
如果它不是唯一的,我建议做类似的事情:
while($rows=mysqli_fetch_assoc($result)){
$test[$rows['field'] . '_' . $rows['pricing_id']] = $rows['price'];
}
这会将数组中的键设置为字段和定价ID,这使其成为唯一的,即
Array('cage_doors_2' => 1800)