如何从api数据创建表

时间:2016-08-24 19:20:18

标签: php html-table

我一直在研究这个问题,而且我可能会比这更困难。任何共享的知识将非常感谢。 我的代码使用API​​调用数据,我能够将其显示为有序列表,但我想使用表格格式使其更具代表性。 理想情况下,我按天分组显示结果。 下面是我到目前为止创建的内容,但它目前没有输出任何内容:

echo "<table>";
echo "<tr>";
echo "<th>Date</th>";
echo "<th>Number of Asteroids</th>";
echo "</tr>";

echo "<tr>";
foreach ($near_earth_object->close_approach_data as $close_approach) {

            echo "<td>" . $close_approach->close_approach_date . "</td>";

foreach ($data->near_earth_objects as $date => $count) {

    echo"<td>" . sizeof($count) . "</td></tr>";

}
}

echo "<tr>";    
echo "<th>Asteroid Name</th>";
echo "<th>Asteroid Size</th>";
echo "<th>Velocity</th>";
echo "<th>Passing Earth By</th>";
echo "</tr>";

echo "<tr>";
    foreach ($data->near_earth_objects->$date as $near_earth_object) {
echo "<td>" . $near_earth_object->name . " <a href='" . $near_earth_object->nasa_jpl_url . "'>" . $near_earth_object->nasa_jpl_url . "</td>";
 echo "<td>" . $near_earth_object->estimated_diameter->meters->estimated_diameter_min . " metres</td>";
    }

foreach ($near_earth_object->close_approach_data as $close_approach) {
echo "<td>" . $close_approach->relative_velocity->kilometers_per_hour . " km/h " . "</td><td>". $close_approach->miss_distance->kilometers . " km</td></tr> ";
        }



echo"</table>";

2 个答案:

答案 0 :(得分:1)

尽可能避免回复HTML代码。您可以使用PHP Short tags <?=?>将PHP注入HTML代码。这一行

echo "<td>" . $close_approach->close_approach_date . "</td>";
然后

可以更改为

<td><?=$close_approach->close_approach_date?></td>

此外,我没有看到任何PHP开始和结束标记(<?php?>)来启动和结束您的PHP代码(虽然这可能只是在您的示例中缺少

您只是循环查看表格数据<td>标记,而不是表格行<tr>标记。您必须在循环中包含这些内容,以便为循环中的每个项创建新的表行:

foreach ($near_earth_object->close_approach_data as $close_approach) {
echo "<tr>";

最后,PHP为控制结构提供了另一种语法。查看PHP documentation

  

PHP为其某些控制结构提供了另一种语法;即,if,while,for,foreach和switch。在每种情况下,替代语法的基本形式是将左大括号更改为冒号(:),并将结束大括号分别更改为endif;,endwhile;,endfor;,endforeach;或endswitch;。

您可以使用它来改进现有代码:

foreach ($data->near_earth_objects->$date as $near_earth_object) {
    echo "<td>" . $near_earth_object->name . " <a href='" . $near_earth_object->nasa_jpl_url . "'>" . $near_earth_object->nasa_jpl_url . "</td>";
    echo "<td>" . $near_earth_object->estimated_diameter->meters->estimated_diameter_min . " metres</td>";
    }

把它变成这样的东西

foreach ($data->near_earth_objects->$date as $near_earth_object): ?>
    <td><?=$near_earth_object->name?> <a href='<?=$near_earth_object->nasa_jpl_url?>'><?=$near_earth_object->nasa_jpl_url?></td>
    <td><?=$near_earth_object->estimated_diameter->meters->estimated_diameter_min?> metres</td>
    <? endforeach; ?>

答案 1 :(得分:0)

我建议您创建表格,因为您只想使用HTML查看它,然后使用PHP动态填充它。可能有帮助的是,而不是让PHP回显所有HTML,只需使用PHP来填充数据(即,从显示中分离数据)。就像从here中得到的一个例子:

    <div style="width:300px; height:10px;">
    <div class="col-xs-6 copyright">
    © 2016 company
    </div>
    <div class="col-xs-6 linkedin">
    	Follow us on <a someheref>
    </a>
    </div>
    </div>