我想选择表格中的最后一个元素。我幸运地做到了,但问题在于,我的循环中的插入总是重复我的第二个表中的条目。我在这里有我的代码,我不知道是什么问题。选择表格中的最后一个元素
我找到了一种避免检查是否最后一项还没有插入但是不起作用的方法。
$p = $pdo->query("SELECT * FROM messagein ORDER BY `Id` DESC limit 1 ");
// SELECT * FROM messagein WHERE Id = (select MAX('Id') from messagein)
echo "<table style='border-width: 1px solid black;'>";
echo "<tr>";
echo "<td> ID </td>";
echo "<td> SendTime </td>";
echo "<td> ReceiveTime </td>";
echo "<td> MessageFrom </td>";
echo "<td> MessageTo </td>";
echo "<td> MessageText </td>";
echo "<td> MessageType </td>";
echo "</tr>";
while ($data = $p->fetch())
{
// $p = $pdo->query("SELECT * FROM messagein ORDER BY `Id` DESC limit 1");
// $data = $p->fetch();
echo "<tr>";
echo "<td>" . $data['Id'] . "</td>";
echo "<td>" . $data['SendTime'] . "</td> ";
echo "<td>" . $data['ReceiveTime'] . "</td> ";
echo "<td>" . $data['MessageFrom'] . "</td> ";
echo "<td>" . $data['MessageTo'] . "</td> ";
echo "<td>" . $data['MessageText'] . "</td> ";
echo "<td>" . $data['MessageType'] . "</td>";
echo "</tr>";
if (substr($data['MessageText'], 0, 3) == "lat")
{
$final = explode(" ", $data['MessageText']);
$latitude = substr($final['0'], 4);
$longitude = substr($final['1'], 5);
$vitesse = substr($final['2'], 6);
$temps = $data['ReceiveTime'];
$exists = $pdo->prepare("SELECT * FROM donneesgps WHERE latitude = ? AND longitude = ? AND temps = ? AND vitesse = ?");
$response = $exists->execute(array(
$latitude,
$longitude,
$temps,
$vitesse
));
echo $response;
if ($response == true)
{
$donneesgps = "INSERT INTO donneesgps (latitude, longitude, temps, vitesse)
VALUES ('$latitude', '$longitude', '$temps', '$vitesse')";
$pdo->exec($donneesgps);
}
}
}
不涉及具体问题,但为什么你准备选择,而不是插入?如果查询无效(意思是语法上破坏),则execute的结果为false。 – Jakumi
不确定是什么问题,请向我们展示样本数据的当前和预期结果。请阅读[** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t这里是[** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/),了解如何提高您的问题质量并获得更好的答案。 –
我不明白为什么你有一个SELECT。 – Strawberry