Php 将列拆分为单独的变量

Php 将列拆分为单独的变量,php,mysql,variables,Php,Mysql,Variables,我有下面的代码将db列数据显示为表标题 $reportID=$_GET["reportID"]; $result=mysql_query("SELECT * FROM reportFields")or die('Could not connect:loggod line 30 iD' . mysql_error()); $num_rows = mysql_num_rows($result); echo " <tbody> "; // first row begi

我有下面的代码将db列数据显示为表标题

 $reportID=$_GET["reportID"];
$result=mysql_query("SELECT * FROM reportFields")or die('Could not connect:loggod line 30 iD' . mysql_error());
 $num_rows = mysql_num_rows($result);   

  echo "    <tbody> "; // first row beginning
for ($i = 1; $i <= mysql_num_rows($result); $i++)
{
    $row = mysql_fetch_array($result);

   $field = $row ['field'];

   echo "         
        <th>$field</th> 

        ";  }

    if ($i % 4 == 0) {
        echo ''; // it's time no move to next row
    }
$reportID=$\u GET[“reportID”];
$result=mysql\u query(“SELECT*FROM reportFields”)或die('cannotconnect:loggod line 30 iD'.mysql\u error());
$num\u rows=mysql\u num\u rows($result);
回声“;//第一排开始

对于($i=1;$i不确定这是否是您正在寻找的答案,但您可以这样做

$field = [$row ['field']];
现在,我们要回显所有的值

foreach($field as $v){
    echo "<th>$v</th>";
}
foreach($v字段){
回声“$v”;
}

这是一个非常不清楚的问题。而且你有非常奇怪的代码

我猜你要的是什么:

$result=mysql_query("SELECT * FROM reportFields")or die('Could not connect:loggod line 30 iD' . mysql_error());
echo "<table><thead><tr>";
$i=0; 
$fields = array();
while ($i < mysql_num_fields($result)) {
    $metaField = mysql_fetch_field($result, $i);
    $fields[] = $metaField;
    echo '<th>'.$metaField->name.'</th';
    $i++;
}
echo "</tr></thead>";
echo "<tbody>";
while ($row = mysql_fetch_array($result) )
{
   echo '<tr>';
   foreach( $fields as $field) 
     echo '<td>'. $row [$field->name].'</td>';
   echo '</tr>';
}
echo "</tbody></table>";
$result=mysql\u query(“从报告字段中选择*”)或die('cannotconnect:loggod line 30 iD'.mysql\u error());
回声“;
$i=0;
$fields=array();
而($i回显“”。$metaField->name。“根据您在评论中写的内容

$reportID=$_GET["reportID"];
$query  = "SELECT * FROM reportFields WHERE reportID=$reportID";
$result=mysql_query($query)or die('Could not connect:loggod line 30 iD' . mysql_error());
$i=1;
echo "<tbody><tr>"; // first row beginning
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){  
    $field = $row ['field'];
    $reportID = $row ['reportID'];
    echo "<td>$reportID</td>";  
    echo "<td>$field</td>";  
    if ($i % 4 == 0)echo '</tr><tr>'; // it's time no move to next row
    $i++;
}
echo "</tr></tbody>";
$reportID=$\u GET[“reportID”];
$query=“从reportID=$reportID的reportFields中选择*”;
$result=mysql\u query($query)或die('cannotconnect:loggood line 30 iD'.mysql\u error());
$i=1;
echo“”;//第一行开始
而($row=mysql\u fetch\u数组($result,mysql\u ASSOC)){
$field=$row['field'];
$reportID=$row['reportID'];
echo“$reportID”;
回显“$field”;
如果($i%4==0)回显“”;//是时候不移动到下一行了
$i++;
}
回声“;

$row['field']
引用名为
field
的sql列,因此
$row['reportName']
将查看reportname列。这就是获取不同字段所需的全部内容。如果要存储不同的行,可以将它们读入数组并返回引用。很难解释我的意思。$field根据reportID存储在数据库中。我需要选择所有具有reportID的数据但将它们拆分为单独的变量-这有意义吗?这是一个有点令人困惑的问题,因为许多人将db表的列/属性称为
字段
,所以当您将其用于行或字段时…很难讨论。啊,我明白了。将查询更改为
从reportID=1的reportFields中选择*
Ok,假设调用了
field
name
,这会更容易吗?将$field=$row['field'];替换为${'field'.$i}=$row['field'];然后调用变量do$field1,$field2,…如果我用你的代码替换它,它会自动设置$field1,$field2等吗?@您好,是的,它会自动设置$field1,$field2,…到你的数据库中有多少条记录这正是我想要的,唯一的问题是,我如何知道有多少个字段,用于回显目的?一旦完成设置变量$i将使行数相等,但这将打印整个表格您需要一个头部吗?因此请评论
tbody
部分。谢谢-请参阅下面的Papa Dragon回答,这正是我需要的,但只需知道有多少字段,请参阅我的评论。您认为您需要头部吗?实际上,它也是一样的使用未知变量名开发代码是不可能的。使用常规技术获取信息要容易得多。但是祝你的项目好运。下面的答案有效吗?我只需要知道有多少字段可以作为$field1$field2 etcThanks来回显它们-请参阅下面Papa Dragon的答案,这正是我需要知道的有多少字段,请参见我的评论