Я хочу выбрать последний элемент в моей таблице. Я сделал это к счастью, но проблема в том, что вставка в мой цикл всегда дублирует запись в моей второй таблице. У меня есть мой сценарий, и я не знаю, в чем проблема.Выберите последний элемент в таблице
Я нашел способ избежать, проверяя, что последняя запись еще не вставлена, но она не работает.
$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);
}
}
}
не касается конкретного вопроса, но почему вы готовите выбор, но не вставку? результат выполнения будет ложным, если запрос недействителен (это означает, что он сломан ... синтаксически). – 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