我想显示我的数据库中每个表的最后一条记录。所有表都具有与以下相同的结构:
+------+-----------+------------+--------+-----------+
| id | kh_ho | kh_ha | total | base_num |
+------+-----------+------------+--------+-----------+
| 1 | 2400 | 2000 | 2569 | 12548 |
| 2 | 2600 | 2195 | 2569 | 12548 |
| 3 | 2800 | 2400 | 2569 | 12548 |
| 4 | 4700 | 4450 | 2569 | 12548 |
| 5 | 5200 | 5000 | 2569 | 12548 |
| 6 | 4800 | 4795 | 2569 | 12548 |
| 7 | 5000 | 4990 | 2569 | 12548 |
| 8 | 5800 | 5795 | 2569 | 12548 |
| 9 | 7500 | 7950 | 2569 | 12548 |
| 10 | 8300 | 8495 | 2569 | 12548 |
我想显示每个数据库表 的最后一条记录,并在表的最后两列上回显kh_ho
和kh_ha
。
你能用 PHP 和 MySQL 帮我解决这个问题吗?
最佳答案
使用这个单行查询怎么样?
SELECT * FROM MyTable ORDER BY id DESC LIMIT 1;
完整的 PHP 代码:
好吧,我不是 PHP 专家,但这应该有所帮助:
<?php
$dbc = mysqli_connect('localhost','test','test','test') or die('Error connecting to MySql Server.');
$queryShowTable = "SHOW TABLES;";
$querySelect_Template = "SELECT kh_ho, kh_ha FROM ";
$listOftables = mysqli_query($dbc,$queryShowTable) or die('Error querying database.');
echo '<table>';
while($table=mysqli_fetch_array($listOftables)){
$querySelectData = $querySelect_Template.$table[0].' ORDER BY id DESC LIMIT 1;';
$tableData = mysqli_query($dbc,$querySelectData) or die('Error querying database.');
while($row = mysqli_fetch_array($tableData)){
echo '<tr><td>'.$row[0].'</td><td>'.$row[1].'</tr>';
}
}
echo '</table>';
mysqli_close($dbc);
?>
关于php - 选择数据库中每个表的最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22625730/