我正在尝试从SQL数据库中提取列名称以用于HTML下拉列表中。然后,我试图将PHP插入HTML下拉列表中以显示列名。
我已经使用fetch数组从另一个下拉列表中的变量提取SQL来从SQL获取输出。但是我不能在PHP中返回列名。我所得到的就是使用$row[2].
是否有一种简单的方法来提取列名(即,数值后方括号中的非数字值)。
$query="SELECT * FROM ".($units_cat)."";
if ($result = mysqli_query($link, $query)) {
$row = mysqli_fetch_array($result);
echo nl2br (" \n Query was successful \n");
print_r($row);
echo "<br>";
}
HTML
<option value="<?php $row[2]?>"
<?php
if($_POST['units_from']==$row)
echo 'selected="selected"';?>
>
<?php echo ($row[2])?>
</option>
从SQL查询输出
Array (
[0] => 1
[id] => 1
[1] => Klbs
[from_value] => Klbs
[2] => 1.0000000000
[klbs] => 1.0000000000
[3] => 1000.0000000000
[pound] => 1000.0000000000
[4] => 0.4535923700
[ton] => 0.4535923700
[5] => 453.5923700000
[kg] => 453.5923700000
[6] => 224.8089424432
[newton] => 224.8089424432
[7] => 22.4808942443
[dn] => 22.4808942443
[8] => 0.2248089424
[kn] => 0.2248089424
)
答案 0 :(得分:0)
通过使用DESCRIBE输出表数据数组,我能够做到这一点。然后创建一个列数组。
height
然后在相关下拉列表中调用列值。
$query2=("DESCRIBE ".mysqli_real_escape_string($link, $units_cat));
if ($result2 = mysqli_query($link, $query2)) {
$table_desc = mysqli_fetch_all($result2);
#Create an array of column values
foreach($table_desc as $val) {
$col[]=$val[0];
}
我不得不将$ units_cat所引用的表列入白名单,因为我相信您无法准备表,因为您无法将参数绑定到PHP / SQL中的表项。
<option value="<?php echo($col[2]) ?>"<?php if($_POST['units_from']==($col[2])) echo
'selected="selected"';?>><?php echo($col[2]) ?></option>
答案 1 :(得分:-1)
使用mysql_fetch_array您可以分别访问每个参数 $ row ['id']; $ row ['pound'];
但是,考虑到您可以通过使用公制单位进行简单转换来节省空间,在数据库中存储相同变量的不同值(以千克,吨,英寸...)似乎有点不必要。您的用户每次需要以不同的单位输入重量吗?