2014-04-14 77 views
0

我正在上课,我有一个排行榜页面。我想要做的是在每次将新结果添加到数据库时向表中动态添加新行。如何动态添加行到这个HTML表格...?

这是我的PHP SELECT *

<?php $records = array(); 

if ($results = $db->query("SELECT * FROM user_settings, leaderboards")) { 
    if ($results->num_rows) { 
while ($row = $results->fetch_object()) { 
    $records[] = $row; 
} 
$results->free(); 
    } 
} 
?> 

<?php foreach ($records as $data) { ?> 
... 

我的表看起来像这样:

<table class="leaderboard"> 
<tr> 
<th>ID</th><th>First Name</th><th>Last Name</th><th>Robot Name</th><th>Power Remaining</th><th>Level</th> 
</tr> 
<tr> 
<td><?php echo escape($data->id); ?></td><td><?php echo escape(htmlentities($data->first_name)); ?></td><td><?php echo escape(htmlentities($data->last_name)); ?></td><td><?php echo escape(htmlentities($data->robot_name)); ?></td><td><?php echo escape($data->power_remaining); ?></td><td><?php echo escape($data->level) ?></td> 

</tr> 
<tr> 

</tr> 
</table> 

这成功地抓住从数据库中的值但是我怎么能动态地添加新记录到HTML表每次有新的值输入到数据库中?

+0

难道你不只是循环每个TR不是一个全新的表? –

+0

您需要在PHP中使用'while','for'或'foreach'循环语句。然后记录每条记录,你应该通过echo或直接通过响应'tr'将记录内容输出到'td'中。看来你现在正在做这件事。 – Rolice

+1

您将需要使用Javascript。制作一个以JSON形式返回记录的网址。每分钟申请一次URL。如果有新记录,请在表格中添加一行。 – nathancahill

回答

2

使用foreach中的<td>在PHP中有一个简单的回声,它应该工作。

例如:

<?php foreach ($records as $data) { 
    echo "<td> escape($data->id) ... </td>" 
} ?> 
+0

给出一个与问题代码有关的例子。他已经在使用“foreach”了。 – Rolice

0

你需要检查当前结果计数与阿贾克斯每部分时间段,为前。每一分钟。如果有更多结果 - 将它们发送到客户端,并使用javascript将它们添加到表格中。