2016-08-24 118 views
0

我一直在研究這一段時間,而且我可能會讓它變得更加困難。任何共享的知識將非常感激。 我的代碼使用API​​調用數據,我能夠將其顯示爲有序列表,但我希望使用表格格式使其更易於表現。 理想情況下,我的結果按日顯示。 下面是我創建至今,但目前不輸出任何東西:如何從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>"; 

回答

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; ?> 
0

我建議創建表,你想看到它只是HTML,然後使用PHP動態填充它。有什麼可以幫助的是,而不是讓PHP迴應所有的HTML,只需使用PHP來填充數據(即從顯示中分離數據)。正如從here採取了一個例子:

<?php foreach ($things as $thing): ?> 
    <li><?php echo $thing; ?></li> 
<?php endforeach; ?>