首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for循环PHP中获取列名和值

问在for循环PHP中获取列名和值
EN

Stack Overflow用户
提问于 2012-11-27 19:36:00
回答 3查看 28.2K关注 0票数 2

我想从特定表中获取所有的列名和值。此表中的字段不是固定的,因此有时用户会添加一个字段,也可以将其删除。我想要做的是检索所有的列名并获取它的值。到目前为止,我只是检索列名并从中获取一个值。我知道为什么会有这样的结果,但我不知道如何修复它。

代码语言:javascript
复制
//I edited this sql, normally the table value and id are variable
$sql = "SELECT * FROM ".$_POST['moduleName']." WHERE modItemID= ".$_POST['modItemID']; 
$query = mysql_query($sql); 
$columns = mysql_num_fields($query); 
for($i = 1; $i < $columns; $i++) { 

//read field name
  $fieldName = mysql_field_name($query,$i);
  while($row = mysql_fetch_assoc($query,$i)){
    echo $fieldName."=".$row[$fieldName];   
  }

}  

结果: naam=Ketting

EN

回答 3

Stack Overflow用户

发布于 2012-11-27 19:39:34

实际上,对您的问题非常简单的解决方案是使用foreach循环,如下所示:

代码语言:javascript
复制
while($row = mysql_fetch_assoc($query))
{
    foreach($row as $key => $value)
    {
        echo "$key=$value";
    }
}
票数 7
EN

Stack Overflow用户

发布于 2012-11-27 19:38:51

mysql_fetch_assoc返回一个关联数组。您可以使用foreach循环来检索数组中每一项的key=>value。

代码语言:javascript
复制
$sql = "SELECT * FROM products WHERE modItemID= 14"; 
$query = mysql_query($sql); 
$columns = mysql_num_fields($query); 
for($i = 1; $i < $columns; $i++) { 

//read field name
  $fieldName = mysql_field_name($query,$i);
  while($row = mysql_fetch_assoc($query,$i)){
    foreach($row as $column=>$value) {
      echo "$column = $value\n";
    }
    echo $fieldName."=".$row[$fieldName];   
  }

}  
票数 5
EN

Stack Overflow用户

发布于 2017-11-06 19:51:33

只需输入您的数据库名称、用户名、密码和表名即可。

您从主数据库中获取所有数据(带有列名)

代码语言:javascript
复制
<?php 

function qry($q){

    global $qry;
    try {   
    $host = "?";
    $dbname = "?";
    $username = "?";
    $password = "?";
    $dbcon = new PDO("mysql:host=$host; 
    dbname=$dbname","$username","$password");
}
catch (Exception $e) {

    echo "ERROR ".$e->getMEssage();

}

    $qry = $dbcon->query($q);
    $qry->setFetchMode(PDO:: FETCH_OBJ);

    return $qry;

}


echo "<table>";

/*Get Colums Names in table row */
$columns = array();

$qry1= qry("SHOW COLUMNS FROM Your_table_name");

while (@$column = $qry1->fetch()->Field) {
    echo "<td>".$column."</td>";
    $columns[] = $column;

}

echo "<tr>";

/* Fetch all data into a html table *

$qry2 = qry("SELECT * FROM Your_table_name");

while ( $details = $qry2->fetch()) {

    echo "<tr>";
    foreach ($columns as $c_name) {
    echo "<td>".$details->$c_name."</td>";

}

}

echo "</table>";

?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13583367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档