0

我正在尝试制作一张桌子,其中有:

  • 左侧的列名称。
  • 数据垂直。
  • 在下一个 sql 行上水平扩展而不是垂直扩展。

简而言之,与普通桌子完全相反。

此外,水平展开的数据将在顶部有一个名为 Solution X 的标题(X 表示实际列的编号,图片使一切都清楚)。

我添加了一张图片,它应该可以清楚地说明我试图实现的目标,并附有指导方针。!

图片:

这样做的代码是:

<table border="1">
  <tr>
    <th></th>
    <th>Solution 1</th>
    <th>Solution 2</th>
    <th>Solution 3</th>
  </tr>
  <?
 while($result = mysql_fetch_array( $data )) 
 { ?>
  <tr>
    <td>SHIPPINGLINE</td>
    <th><? echo $result["SHIPPINGLINE"]; ?></th>
  </tr>
  <tr>
    <td>POL</td>
    <th><? echo $result["POL"]; ?></th>
  </tr>
  <?
 } 

 //This counts the number or results - and if there wasn't any it gives them a little     message explaining that 
 $anymatches=mysql_num_rows($data); 
 if ($anymatches == 0) 
 { 
 echo "Sorry, but we can not find an entry to match your query.<br><br>"; 
 } 

 //And we remind them what they searched for 
 echo "<b>Searched For:</b> " .$findone. " and " .$findtwo;
 } 
 ?>
    </table>

我被卡住了,因为正如您所看到的,不断发生的事情是获取的下一个“sql 行”始终出现在第一个下方。我想要的是下一个“sql 行”必须位于下一个“解决方案编号”之下。

如果你能帮助我解决这个问题,我将不胜感激。如果您需要更多详细信息,请随时询问:)。

4

1 回答 1

0
<?php
$output = array();
$c=1;
while($result = mysql_fetch_array( $data )) 
{
  $output[$c]['shippingline'] = $result['shippingline'];
  $output[$c]['pol'] = $result['pol'];
      $c++;
}
?>
<table border="1">
<tr>
<th></th>
<?php
foreach ($output as $key => $html)
{
echo "<th>Solution ".$key."</th>";
}
?>
</tr>
<tr>
    <td>Shipping Line</td>
<?php
foreach ($output as $key => $html)
{
echo "<td>".$html['shippingline']."</td>";
}
?>
</tr>
<tr>
    <td>POL</td>
<?php
foreach ($output as $key => $html)
{
echo "<td>".$html['pol']."</td>";
}
?>
</tr>   
</table>
于 2013-02-27T11:04:55.790 回答