对于我的问题,我有两种可能的解决方案我想回显最后插入的ID以知道有多少人填写表单,但会影响下表中的数据。注意:这不会影响数据库本身,只会影响浏览器的输出。PHP无法获取正确插入的最后一个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>';
我actualy多了一个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
,你做的电网也将代码丢弃功能/程序的风格好被张贴 –
好吧现在去更新它 – Miguel