Приветствую Вас! Есть таблица mysql в таком виде. Мне нужно при нажатии на кнопку "update" удалять из этой таблицы самые старые записи, с одинаковой временной меткой( в данном случае это будет первые два рядка). Количество рядков с одинаковой временной меткой может увеличиваться ну и соответственно надо удалить уже больше рядков. HTML: <table border="1"><tr> <td>10.11.34.2</td> <td>10.11.34.39 - 26</td> <td>1485767824</td> </tr><tr> <td>10.11.34.2</td> <td>10.11.34.45 - 25</td> <td>1485767824</td> </tr><tr> <td>10.11.34.2</td> <td>10.11.34.39 - 26</td> <td>1485768846</td> </tr><tr> <td>10.11.34.2</td> <td>10.11.34.45 - 25</td> <td>1485768846</td> </tr><tr> <td>10.11.34.2</td> <td>10.11.34.39 - 26</td> <td>1485769040</td> </tr><tr> <td>10.11.34.2</td> <td>10.11.34.45 - 25</td> <td>1485769040</td> </tr></table> Я набросал небольшой код, который работает, но выглядит он убого. Хотелось бы не изобретать велосипед, возможно подскажете какой-то другой способ выполнения данной операции. PHP: echo "Updating..."; $sql = "SELECT * FROM lldp WHERE ip_address='$ip_address'"; $result = $link->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $timestamp[] = $row['date']; } } $tempArray = array_count_values($timestamp); foreach ($tempArray as $key => $value) { $sql = "DELETE FROM lldp WHERE ip_address='$ip_address' AND date='$key'"; if ($link->query($sql) === TRUE) { echo "Record deleted successfully \n"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } break; } }
Значит всё нормально. Только добавь защиты от sql-injection, xss и т. д. http://phpfaq.ru/tech/safety
Я ведь и создал тему в разделе "сделайте за меня". Проблема заключается в том, что временная метка будет всегда разная. PHP: $sql = "SELECT date FROM lldp WHERE ip_address='$ip_address' ORDER BY date LIMIT 0,1"; $result = $link->query($sql); if ($result->num_rows > 0) { $row = $result->fetch_row(); $timestamp = $row[0]; } // print_r($timestamp); //2 - вариант $sql = "DELETE FROM lldp WHERE ip_address='$ip_address' AND date='$timestamp'"; if ($link->query($sql) === TRUE) { echo "Records deleted successfully <br>"; } else { echo "Error: " . $sql . "<br>" . $link->error; } На данный момент сократил код до такого формата, если подскажете как удалить то что мне нужно в одну строчку, буду премного благодарен.