2

特定のテーブルからすべての列名と値を取得したいと考えています。このテーブルのフィールドは固定されていないため、ユーザーがフィールドを 1 つ追加したり、削除したりすることがあります。私がやりたいことは、すべての列名を取得し、その値を取得することです。私が今のところ、列名を取得し、そこから 1 つの値を取得しています。この結果が得られる理由はわかっていますが、修正方法がわかりません。

//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=ケッティング

4

3 に答える 3

7

実際、問題に対する本当に簡単な解決策は、次のように foreach ループを使用することです。

while($row = mysql_fetch_assoc($query))
{
    foreach($row as $key => $value)
    {
        echo "$key=$value";
    }
}
于 2012-11-27T11:39:34.360 に答える
5

mysql_fetch_assoc連想配列を返します。ループを使用foreachして、配列内の各項目のキー=>値を取得できます。

$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];   
  }

}  
于 2012-11-27T11:38:50.953 に答える