SQL循环不会打印列名

时间:2015-12-21 11:50:03

标签: php html mysql sql

我的数据库中有几列,我想打印出所有列名,即数据库中人员的姓名。

我在选择列名时遇到问题,这段代码将运行循环,但只打印$ i,而不是列的实际名称。有什么建议?感谢

ifeq ($(OS),LINUX)
# do stuff
endif

P.S。 我尝试过:     从Names.COLUMNS中选择COLUMN_NAME,其中TABLE_NAME ='Names',但这也不起作用,它告诉我:访问被拒绝,不知道为什么

4 个答案:

答案 0 :(得分:2)

以下是获取表格列名的代码。

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."<br>";
}

但是,当你被拒绝访问时。这意味着您没有访问表元数据的权限。

所以你可以使用

while ($row = mysql_fetch_assoc($result)) {
   if (empty($columns)) {
       $columns = array_keys($row);
       // Here $columns is array and it contains all column name
   }
}

答案 1 :(得分:0)

我想你应该试试这个:

$query = "SELECT * FROM People";
$result = mysqli_query( $conn, $query );?>
<table>
<?php
while($row = mysqlsi_fetch_assoc( $result ) ){ 
   ?>
      <tr>
         <td><p><?php print( $row->id );?></p></td>
         <td><p><?php print( $row->name );?></p></td>
         <td><p><?php print( $row->lastname );?></p></td>
      </tr>
   <?php
   } ?>
</table>

假设您的SQL表包含以下字段:idnamelastname

答案 2 :(得分:0)

在你的while循环中你可以使用

foreach($row as $column => $value){
  printf("Column: %s  has value: %s\n", $column, $value);
}

因为mysql_fetch_assoc返回一个关联数组,所以你想要key =&gt;价值信息。

HTH

答案 3 :(得分:0)

在php中使用mysql_field_name函数获取列名

$query = mysql_query("SELECT * FROM People");

$i = 1; $j=0; // I have declared $j incrementor
while($row = mysql_fetch_assoc($query)) { 

          $name = $row['query'];

    $columnname = mysql_field_name($query, $j); // This gives the column name of table.
          if ($count > '1') {
        ?>
        <table>
        <tr>
         <td><?php echo $columnname; ?></td>
        <td><p><b><?php print( $name . "</p></td></tr>");
        $i = $i + 1;
    $j = $j + 1;
        ?>