【发布时间】:2026-01-28 23:40:01
【问题描述】:
对于我的问题,我有两种可能的解决方案,我想回显插入的最后一个 id,以了解有多少人填写表格,但这会影响下表中的数据。注意:这不会影响数据库本身,只会影响浏览器的输出。
connect.php
@$db = new mysqli('127.0.0.1', 'blop', 'blop', 'blop');
if ($db->connect_errno) {
die ('Sorry, we are having some problems.');
}
显示结果:
function returnData() {
global $db;
echo ('<style> td {border: 1px solid #000; background:#ed8043;} th {border:1px solid #000; background:#fff</style>
<table style="width:100%; text-align:center;">
<tr>
<th>Line</th>
<th>id</th>
<th>Name</th>
<th>Email</th>
<th>Visited</th>
</tr>');
$result = $db->query("SELECT * FROM `people` ORDER BY `created` DESC");
$count = $result->num_rows;
echo 'Number of visits: ' .$count.'<br><br>';
/*$visits1 = $result->fetch_assoc();
echo $visits1['id']. '<br>';
$visits2 = $db->insert_id;
echo $visits2. '<br>';*/
$row_num = 1;
while ($row = $result->fetch_object()) {
echo ('
<tr>
<td>' .$row_num. '</td>
<td>' .$row->id. '</td>
<td>' .$row->first_name. '</td>
<td>' .$row->mail. '</td>
<td>' .$row->created.'</td>
</tr>'
);
$row_num++;
}
echo ('</table><br>');
$result->free();
}
问题是当我这样尝试时:1.
$result = $db->query("SELECT * FROM `people` ORDER BY `created` DESC");
$visits1 = $result->fetch_assoc();
echo $visits1['id']. '<br>';
我实际上比表格上显示的 ID 多一个,如下图所示:
如您所见,我有“756”女巫很好,因为它是插入的最后一个 id,但我不想要相应的行(id 为 756),它从下面的表格中消失了。当我评论上面的代码时,它工作正常,第一行是插入的最后一个 id。
我有一个替代代码来解决这个问题,问题是这也不起作用:2.
$result = $db->query("SELECT * FROM `people` ORDER BY `created` DESC");
$visits2 = $db->insert_id;
echo $visits2. '<br>';
这次表格是正确的,它显示了所有行,但总 id 的数量为 0。
【问题讨论】:
-
你做网格的代码也可以贴出来
-
好的,马上更新