猿问

来自php中sql查询的列名

我正在尝试从 SQL 数据库中提取列名以在 HTML 的下拉列表中使用。然后我试图将 PHP 插入到 HTML 下拉列表中以显示列名。


我已经使用 fetch array 从另一个下拉列表中使用变量从 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 

    )


蝴蝶刀刀
浏览 131回答 2
2回答

HUH函数

我能够通过使用 DESCRIBE 输出表数据数组来做到这一点。然后创建一个列数组。&nbsp;$query2=("DESCRIBE ".mysqli_real_escape_string($link, $units_cat));if ($result2 = mysqli_query($link, $query2)) {&nbsp; &nbsp; $table_desc = mysqli_fetch_all($result2);#Create an array of column values&nbsp; &nbsp;&nbsp; &nbsp; foreach($table_desc as $val) {&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; $col[]=$val[0];&nbsp;&nbsp; &nbsp; }然后在相关下拉列表中调用列值。&nbsp;<option value="<?php echo($col[2]) ?>"<?php if($_POST['units_from']==($col[2])) echo&nbsp;&nbsp;'selected="selected"';?>><?php echo($col[2]) ?></option>&nbsp;&nbsp;我不得不将 $units_cat 引用的表列入白名单,因为我相信您无法准备表,因为您无法将参数绑定到 PHP/SQL 中的表条目。#Get tables list for whitelisting$query3="Show tables";$result3=mysqli_query($link,$query3);if (!$result3) {&nbsp; &nbsp; echo "DB Error, could not list tables\n";&nbsp; &nbsp; echo 'MySQL Error: ' . mysqli_error();&nbsp; &nbsp; exit;}if ($result3=mysqli_query($link,$query3)){&nbsp; &nbsp; while($row=mysqli_fetch_row($result3)){&nbsp; &nbsp; &nbsp; &nbsp; $tables[]=$row[0];&nbsp; &nbsp; }}&nbsp; &nbsp; &nbsp; &nbsp;#UNITS CAT WHITELIST CHECK&nbsp;&nbsp;if (in_array($units_cat,$tables)){&nbsp; &nbsp; echo nl2br (" \n Units Cat Table exists");}else{&nbsp; &nbsp; echo "Table does not exist";&nbsp; &nbsp; mysqli_close($link);&nbsp; &nbsp; echo "<br>";&nbsp; &nbsp; die("non valid entry");}

幕布斯6054654

使用 mysql_fetch_array 你可以单独访问每个参数 $row['id'];&nbsp;$row['磅'];但是,考虑到您可以通过使用公制单位进行简单转换来节省空间,因此在数据库中存储相同变量(以 kg、以吨为单位、以...为单位)的不同值似乎有点不必要。您的用户是否需要每次输入不同单位的重量?
随时随地看视频慕课网APP
我要回答