您好我有一个名为Log的数据库表, 我想只显示这个dabatase的最后5行。 这是我的代码:
php:
function get_log_data(){
$query = "SELECT * FROM log";
mysql_query("SET NAMES 'utf8'");
$result = mysql_query($query, $this->connection);
if(!$result) //ERROR IN YOUR SQL QUERY
return false;
if(mysql_num_rows($result)==0) //NO ROWS IN TABLE pages
return false;
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) // CHANGE THE RESULT TO 2 DIMMENSIONAL ARRAY
{
$returned_array[] = $row;
}
return $returned_array;
}
在html上:
$log_data = $func->get_log_data();
<table cellspacing="0" cellpadding="0" style="width: 100%">
<?php
foreach($log_data as $key=>$value)
{
echo '<tr >';
echo '<td class="count" style="width:20px;text-align:center;">.</td><td>'. $value['action'].' : '.$value['user'].' .</td>';
echo '</tr >';
}
?>
</table>
我想最后只有5个而且没有更多 感谢。
答案 0 :(得分:3)
<强>解决方案:1 强>
在查询中使用 LIMIT 5条记录
SELECT * FROM log ORDER BY yourcolumnname DESC LIMIT 5
<强>解决方案:2 强>
使用escaper;)
$i=0;
foreach($log_data as $key=>$value)
{
if($i==5)
break;
echo '<tr >';
echo '<td class="count" style="width:20px;text-align:center;">.</td><td>'. $value['action'].' : '.$value['user'].' .</td>';
echo '</tr >';
$i++;
}
答案 1 :(得分:3)
使用查询:
$query = "SELECT * FROM log order by PRIMARY_KEY DESC limit 5";
使用foreach
for($i=(count($log_data)-1); $i>=count($log_data)-5;$i++) {
//your logic
}
答案 2 :(得分:0)
$i = 1;
foreach($log_data as $key=>$value)
{
if ($i <= 5)
{
echo '<tr >';
echo '<td class="count" style="width:20px;text-align:center;">.</td><td>'. $value['action'].' : '.$value['user'].' .</td>';
echo '</tr >';
}
$i++;
}
但最好在SQL中使用LIMIT,除非你想将查询结果保留在其他内容中,而不仅仅是foreach
答案 3 :(得分:0)
SELECT * FROM (
SELECT * FROM log ORDER BY id DESC LIMIT 5
) sub
ORDER BY id ASC